欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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. 线程
    (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