共 13 篇文章 |
|
用线程池构建的应用程序容易遭受任何其它多线程应用程序容易遭受的所有并发风险,诸如同步错误和死锁,它还容易遭受特定于线程池的少数其它风险,诸如与池有关的死锁、资源不足和线程泄漏。任何多线程应用程序都有死锁风险。虽然任何多线程程序中都有死锁的风险,但线程池却引入了另一种死锁可能,在那种情况下,所有池线程都在执行已阻塞的等... 阅734 转17 评0 公众公开 06-08-12 16:03 |
当垃圾收集器跟踪堆的时候,如果对一个对象的引用只有弱引用,那么这个 referent 就会成为垃圾收集的候选对象,就像没有任何剩余的引用一样,而且所有剩余的弱引用都被清除。如果用关联的引用队列创建弱引用,在 referent 成为 GC 候选对象时,这个引用对象(不是 referent)就在引用清除后加入 到引用队列中。下个月,我们将分析与弱引用有关... 阅280 转8 评0 公众公开 06-08-12 15:57 |
Thread-4 reads data: AAAAAAAAAAThread-3 reads data: AAAAAAAAAAThread-2 reads data: AAAAAAAAAAThread-1 reads data: AAAAAAAAAAThread-0 reads data: AAAAAAAAAAThread-5 wrote data: EEEEEEEEEEThread-6 wrote data: MMMMMMMMMMThread-1 waiting for read...Thread-1 reads data: MMMMMMMMMMThread-4 reads data: MMMMMMMMMMThread-2 wai... 阅814 转22 评0 公众公开 06-08-12 15:47 |
// TimerTask.javapackage com.crackj2ee.thread;-----------------------------------------------Thread count = 7worker-0: idleworker-1: busyworker-2: busyworker-3: idleworker-4: busyworker-5: busyworker-6: busy-----------------------------------------------[CalculateTask 7] done.仔细观察:一开始只有两个服务器线程,因此线... 阅2106 转33 评0 公众公开 06-08-12 15:46 |
# 调用obj.wait()后,线程A就释放了obj的锁,否则线程B无法获得obj锁,也就无法在synchronized(obj) {...} 代码段内唤醒A。我们设计一个客户端线程和一个服务器线程,客户端线程不断发送请求给服务器线程,服务器线程不断处理请求。蓝色部分就是服务器线程的等待条件,而客户端线程在放入了一个request后,就使服务器线程等待条件满足,于是唤... 阅1766 转32 评0 公众公开 06-08-12 15:45 |
java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。当一个方法正在执行某个synchronized方法时,其他线程如果想要执行这个实例的任意一个synchronized方法,都必须等待当前执行 synchronized方法的线程退出此方法后,才能依次执行。退出sync... 阅4674 转40 评0 公众公开 06-08-12 15:44 |
java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。Thread类是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法:方法1:自己的类extend Thread,并复写run()方法,就可以... 阅1593 转14 评1 公众公开 06-08-12 15:41 |
public class MyServer { public static void main(String[] args) throws IOException{ ServerSocket server=new ServerSocket(5678);public static void main(String[] args)throws Exception{ server=new Socket(InetAddress.getLocalHost(),5678);public class MyMultiServer { public static void main(String[] args) throws IOExcepti... 阅30594 转284 评1 公众公开 06-08-05 17:58 |