thread与Runnable的对比

1、thread存在单继承局限;Runnable不存在单继承局限,并且可以方便多个线程同时处理一个对象。

2、thread实现了Runnable接口,重写run()方法。

3、多个线程操作同一个对象,叫做并发。遇到并发的情况,就需要线程同步,线程同步是一种排队等待机制,在一个队列中存在多个线程排队来依次操作同一个对象。

4、线程中断或死亡之后,无法再次启动。

5、jvm会等待用户线程结束运行,但不会等待守护线程结束。

6、锁机制,是为了解决和防止同一进程下多个线程相互竞争操作同一对象,导致数据紊乱。但是最终会降低程序执行的性能。

7、每个线程都有自己独立的工作内存,单独操作内存中的数据,每个线程对象都对应单独的一个锁,使用synchronized方法时,其他线程阻塞,当执行完毕synchronized方法或者代码块程序时,锁才释放掉,其他线程才可以排队进行数据操作。

8、lock与synchronized对比: lock针对代码块,synchronized针对代码块+方法。lock性能更好一些。

9、线程池好处: 节约了线程创建和销毁的时间与资源开销,线程更加方便管理,提升了响应性能。

10、线程池2个类:ExecutorServices 和 Executors.

 

posted @ 2020-10-05 15:59  eashion  阅读(372)  评论(0编辑  收藏  举报