线程的基本操作
线程的基本操作
线程的创建
基本的创建线程操作
在Java中,线程操作被包装成了Thread
类,因此使用
1 |
|
即可创建一个线程。
在此线程一般使用myThread.start()
方法来启动,表现为新的线程执行一次内置的run()
方法。但默认状态下,run()
方法并不执行任何操作,是一个空方法。
对于一个自定义线程来说,可以继承Thread
类之后重写run()
方法。
1 |
|
多继承问题
Java并不支持多继承,这导致我们新建自定义线程之后无法集成其它类。Runnable
接口解决了这个问题。
1 |
|
在此之中,我们向Thread
的构造函数中传递了一个继承Runnable
接口的类。
实际上,Thread
本身就是基于一个空的Runnable
新建的,我们只不过是替换了它而已:
线程之间的简单交互
基本的线程间交互可以解释为:
子线程.join(): 主线程阻塞,等待子线程完成
线程.sleep(n): 当前线程等待n时间,让出CPU给其它线程,需要抓取中断异常。(当前线程绝对需要等待)
线程.yeild(): 当前线程让出CPU,与同优先级的其他线程一起竞争。(当前线程有竞争机会)
线程协作:O.wait()和O.notify()通过传递Object实现线程协作,如生产者消费者模式
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!