java的高级特性——线程1
程序员文章站
2022-05-07 18:14:27
线程(1) cpu进行调度的最小单位(2) 进程:运行中的应用(3) 一个进程中至少有一个线程,该线程由jvm发起,称之为主线程(4) 线程的生命周期 1、创建线程对象: 新生new born 2、调用start方法后: 就绪ready(程序员对线程不可控) 3、CPU 调度后 运行running 阻塞blocked(sleep/wait(0)-> notify) 阻塞状态正常结束后,进入就绪状态 4、run方法结束: 死.....
-
线程
(1) cpu进行调度的最小单位
(2) 进程:运行中的应用
(3) 一个进程中至少有一个线程,该线程由jvm发起,称之为主线程
(4) 线程的生命周期1、创建线程对象: 新生new born 2、调用start方法后: 就绪ready(程序员对线程不可控) 3、CPU 调度后 运行running 阻塞blocked(sleep/wait(0)-> notify) 阻塞状态正常结束后,进入就绪状态 4、run方法结束: 死亡状态 死亡dead(自然死亡:让循环条件不成立)
(5) 开启一条线程的方法
a、匿名内部类创建线程
Thread thread = new Thread(){
@overridee
Public void run(){
....}
};
Thread.start()
b、自定义类继承 Thread
Class MyThread extends Thread{
//自定义属性
...
//自定义方法
...
@override
Public void run(){
....}
}
Thread thread = new MyThread ();
Thread.start();
c、自定义实现Runable接口
Class MyRun implents Runable{
@overridePublic
void run(){}
}
Runable mr= new MyRun ();
Thread thread = new Thread(mr);
Thread.start();
d、线程池//缓存线程池:小型任务
public class MyCall implements Callable<T>{
//自定义属性
//自定义方法
@override
Public T call(){
...
}
}
Mycall mc = new Mycall(...);
Future<T> fu = esf.submit(mc);
T t = fu.get();
本文地址:https://blog.csdn.net/ccsynl/article/details/107143304