Java源码-Thread 线程.类

    Thread 线程类其实是一个实现了Runable接口的类。该类调用了许多底层的方法。所以下面你们会看到许多native的方法。

native修饰的方法:是指用其他语言(C/C++...)实现的方法。由此可见,底层语言是C/C++。

    Thread 主要成员变量:

        target(当前的Runable),ID (线程号),name(名称),

        以及优先级、线程组、线程状态、锁、本地信息等。

    主要方法:

    1、start();开启一个线程。实则调用native start0()来创建一个线程。这也表明了start()与run()的本质区别。start()开始创建一个实质线程(不是指线程对象,而是OS中的线程)。run()并没有创建线程,它只是一个方法。


       

 2、run():任务的逻辑代码块。执行Runable中的用户run方法。



3、exit():退出,用于释放资源。修饰词为private。这就表明我们不能直接销毁一个线程。(老版本Java有一些毁灭线程的方法,现在被弃用了,不建议使用,文章最后会稍微提一下)。


4、yield()、sleep(ms)两个都具有暂停工作的功能,但有很大区别,放在一起比较。

    yield():它只是通知线程机制,我可以被同优先级的线程切换,但并不会一定被切换。

    sleep():和yield一样,也是切换当前的线程。让其他线程进行工作,但sleep可以被低优先级的切换。



5、关于interrupt()  interrupted()  isInterrupted()




6、 join(ms)   如果这个线程还活着就一直等待 millis长时间、(使用 wait()方法)


    最后还有一个未捕获异常的处理接口 。由于线程有时会抛出异常,但是该异常并不能在起main()线程中捕获,一旦出现未处理的异常那么会终止程序。使用开发者使用了一个 未捕获异常的处理方法来 捕获将要造成线程死亡的异常。

    该异常处理方法是在线程因为没有捕获的异常而临近死亡时被调用。

    是一个私有成员变量,使用Set、Get进行操作



线程的状态 State



被销毁的方法:


    

码字不易,引用注明

猜你喜欢

转载自blog.csdn.net/m0_37128231/article/details/80718970