这里是对学习的多线程通信做个记录.
之前也对多线程安全 以及 Android 中多线程通信进行了接受,可以前往查看
多线程 以及 线程安全
Handler,Message, MessageQueue 和 Looper
多线程交互
- 启动线程
new Thread().start() / Executor.execute(Runnable runnable) - 线程休眠
Thread.sleep() : 线程休眠一个固定的时间,到时间后继续执行后续任务。 (中途可以被打断)
wait() : Object 方法。
在线程任务需要等待其他条件时候使用。
进入 wait() 的判断条件使用 while 循环进行判断
通过notify() / notifyAll() 唤起进入wait()中的线程 - 结束线程
Thread.stop() :
会立即停止线程,不管线程处于什么状态
在Java的API中明确了Thread.stop()方法已经被弃用了.
thread.interrupt() : 温和的终结线程(不强制结束)
这个函数只是通知线程你应该结束了,并标记下线程的结束标志。并不强制结束线程。 要结束线程的话还需要被操作线程配合才行。
Thread.interrupted() 判断线程是否被标记为结束,同时会重置线程的标志位。
Thread.isInterrupted() 判断线程是否被标记为结束,不会重置线程的标志位。
在sleep()/wait()中的线程收到线程中断事件时候,会立即唤醒,并跑出异常InterruptedException(). - Thread.join():让另⼀一个线程插在⾃自⼰己前⾯面
Thread.yield():暂时让出⾃自⼰己的时间⽚片给同优先级的线程
END!
网友评论