Java多线程

2016-06-06  本文已影响22人  观星

线程池

线程

Task

一个线程总是关联这一个Task。

拿Thread来说,要么继承Thread(Thread实现了Runnable),覆盖run方法,要么实现Runnable接口,返回一个run方法给Thread。
前者task和自定义Thread类关联及其紧密,这个Task被自定义的Thread隐藏起来了,其他的Thread没有办法使用这个Task,后者Task和Thread分的比较开,任何Thread都可以去执行这个Task。

线程 - 线程

  1. 并行

  2. 串行

  3. 依赖

并行和并发

如果只有一个CUP,那两个线程没有办法真正的同时执行,只能轮流使用CUP,这种就是并发。
如果有多个CUP,那两个线程可以同时执行,但也不一定就是同时执行,具体还是一个资源分配的问题,如果同时执行,就是并行。

原子操作

sleep

Thread.sleep(1000),让当前线程暂停,注意是一个类方法

共享资源

Synchronized

Synchronize (obj) {

}

looc() 

...

unlock()

volatile

wait : pause

notify/notifyAll : resume

上一篇 下一篇

猜你喜欢

热点阅读