摘要: 主要相同点:Lock能完成synchronized所实现的所有功能 主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。 阅读全文
posted @ 2017-03-25 17:09 暖阳g 阅读(2609) 评论(0) 推荐(0) 编辑
摘要: 第一题:线程的基本概念、线程的基本状态及状态之间的关系? 线程,有时称为轻量级进程,是CPU使用的基本单元;它由线程ID、程序计数器、寄存器集合和堆栈组成。它与属于同一进程的其他线程共享其代码段、数据段和其他操作系统资源(如打开文件和信号)。 线程有四种状态:新生状态、可运行状态、被阻塞状态、死亡状 阅读全文
posted @ 2017-03-25 16:54 暖阳g 阅读(917) 评论(0) 推荐(0) 编辑
摘要: 问题一:多线程有几种实现方法?同步有几种实现方法? 多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 同步的实现方面有两种,分别是synchronized,wait与notify wait():使一个线程处于等待状态,并且释放所持有的对象的lock。sleep():使一个正在 阅读全文
posted @ 2017-03-25 16:40 暖阳g 阅读(13422) 评论(0) 推荐(1) 编辑
摘要: 如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有 阅读全文
posted @ 2017-03-25 15:55 暖阳g 阅读(12573) 评论(0) 推荐(0) 编辑
摘要: 第一种解释: 功能差不多,都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步缩. 还有用法的上的不同是:sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;wait()可以用notif 阅读全文
posted @ 2017-03-25 15:14 暖阳g 阅读(1338) 评论(1) 推荐(1) 编辑