![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA线程
yinbodotcc
基础和内核很重要---能力构成
展开
-
join demo yield几句话
1。你在做A,老板让你先做完B,则你临时要先放弃A,做完B后在接着做A,方法是: A线程中插入一个B.join(),则直到B完成,A才接着做2。你主线程完了,发现还有别的线程没有结束,怎么办? 你需要把那个线程设置为Demo线程,这样 当所有非Demo线程执行完毕,这个Demo线程也会被中止3.stop方法你有很多种方法,有一种是,你可以用interrupt来 中断Slee原创 2006-12-21 16:47:00 · 748 阅读 · 0 评论 -
同步
1。 注意,如果多个线程对同一个List操作,可能会把不同对象放置到同一个位置,所以需要对这个List同步,方法是 synchronized(arraylistA) { arraylistA.add(new SomeClass()); } 当然还有一个巧妙得方法,就是利用 List listA = Collections.synchronizedList(new ArrayList原创 2006-12-21 17:17:00 · 727 阅读 · 0 评论 -
线程组获取线程异常
我呀要演示一个用线程组捕获线程异常得例子,同时注意我用了两个匿名类public class ThreadGroupException { public static void main(String[] args) { ThreadGroup threadGroup1 = new ThreadGroup("线程组名字1") {原创 2006-12-21 16:57:00 · 715 阅读 · 0 评论 -
Demo类演示
public class DaemonTest { public static void main(String[] args) { Thread thread = new Thread(new Runnable() { public void run() { while(true) {原创 2007-01-06 23:16:00 · 772 阅读 · 0 评论 -
Interrupt和sleep
public class InterruptDemo { public static void main(String[] args) { Thread thread1 = new Thread(new Runnable() { public void run() { try {原创 2007-01-06 23:18:00 · 670 阅读 · 0 评论 -
生产者和消费者
1.生产者 public class Producer implements Runnable { private Clerk clerk; public Producer(Clerk clerk) { this.clerk = clerk; } public void run() { System.out.prin原创 2007-01-06 23:10:00 · 586 阅读 · 0 评论 -
死锁不会写在脸上
下面这个程序就是一个死锁程序,你能看明白吗?呵呵public class LazyLocked{private static boolean initialized = false;static {Thread t = new Thread(new Runnable() {public void run() {initialized = true;}});t.start();try{t.jo原创 2007-01-17 16:34:00 · 660 阅读 · 0 评论 -
锁上可能出现的问题
下面的这段程序模拟了一个小车间。程序首先启动了一个工人线程,该线程在停止时间到来之前会一直工作(至少是假装在工作),然后程序安排了一个定时器任务(timer task)用来模拟一个恶毒的老板,他会试图阻止停止时间的到来。最后,主线程作为一个善良的老板会告诉工人停止时间到了,并且等待工人停止工作。首先这个程序我做了修改,使之能够达到目的,同时在源程序中有注释说明了一种一种不正确的方法原创 2007-01-23 16:23:00 · 842 阅读 · 1 评论 -
当给main加上synchronized
1。////////////////////////////////////////////////////////////////在一个同步化的静态方法执行之前,它会获取与它的Class 对象相关联的一个管程(monitor)锁[JLS 8.4.3.6]。所以在上面的程序中,主线程会在创建第二个线程之前获得与PingPong.class 相关联的那个锁。只要主线程占有着这个锁,第二个线程就不可能原创 2007-01-22 14:51:00 · 989 阅读 · 0 评论