-
如何正确的通知java中的线程==not stop()方法 //错误的停止线程的方法 armytaskofsuidangnasty.stop(); //正确的停止线程的方法 armytaskofsuidangnasty.stop();查看全部
-
1、进程是程序(任务)执行过程,持有资源(共享内存,共享文件)和线程。 进程是动态性的 2、线程是系统中最小的执行单元,同一进程中有多个线程,线程共享进程的资源, 一个进程中包含了多个线程。 3.线程之间需要相互通信,同步(线程之间的合作关系), 互斥(线程之间的竞争关系)。查看全部
-
隋唐演义的对象查看全部
-
java对线程的支持主要体现在Thread class 和Runnable interface上,它们都集成于java.lang查看全部
-
Thread常用方法查看全部
-
java线程初体验查看全部
-
线程的交互 线程之间需要相互通信,同步(线程之间的合作关系), 互斥(线程之间的竞争关系)查看全部
-
进程 是程序(任务)执行过程 持有资源(共享内存,共享文件)和线程。 进程是动态性的查看全部
-
线程****查看全部
-
*线程*查看全部
-
Thread常用方法查看全部
-
隋唐演义实战开发---关键先生 public class KeyPersonThread extends Thread{ public void run(){ System.out.println(Thread.currentThread().getName()+"开始了战斗"); for(int i=0;i<10;i++){ System.out.println(Thread.currentThread().getName()+"左图右杀。攻击隋军"); } System.out.println(""结束了战斗) } } /** *隋唐演义大舞台 */ public class Staeg extends Thread{ public void run(){ System.out.prinln("正当双方杀的正high。半路杀出了个程咬金"); Thread mrchen=new KeyPersonThread(); mrchen.setName("程咬金"); //停止军队作战 //停止线程的方法 armtTaskofasuidynasty.keeprunning=false; armytastofrecolt.keeprunning=false; try{ Thread.sleep(2000); }catch(lnterrnptedException e1){ e1.printStackeTrace(); } /* *历史大戏留给关键人物 */ mrchen.start(); //万众瞩目,所有的线程等待程先生完成历史使命 try{ mechen.join()//对象是mrchen }catch(lnterruptedException e){ e.printSrackTrace() } System.out.println("谢谢观看隋唐演义大戏。再见"); } Ps :Thread.currentThread()表示静态意思查看全部
-
1.join是为了让舞台线程最后停止,吐过不假有可能舞台线程结束,军队线程还未停止。就好比 ,导演喊停,演员还在演。可以在join后面加入测试语句,System .out.println("舞台结束") 然后去掉或者保留join观察效果 2.volatile关键字保证了线程可以正确的读取其他线程写入的值,如果不写成Volatile,由于可见性的问题,当前线程有可能不能读到这个值,可加性JMM(java内存模型)happens-before原则,可见性原则 用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的值 3 thread.yield();//让出处理器时间,公平竞争查看全部
-
互斥:synchronized(lockObj){ //互斥的代码块 } 1.保证的同一时间,只有一个线程获得lockObj 同步:wait();notify();notifyAll(); 1.wait();notify();notifyAll();都是属于object类,并不是thread类 2.notify()唤醒wait set中的一条线程,而notifyall()唤醒所有线程 3.同步是两个线程之间的一种交互的操作(一个线程发出消息另外一个线程响应)。查看全部
-
互斥与同步 一、互斥 1、同一时间,只能有一个线程访问数据 二、同步 1、是一种通信机制,一个线程操作完成后,以某种方式通知其他线程 三、实现方法 1、【互斥】构建锁对象(Object objLock),通过synchronized(lockObj){ //互斥的代码块 } 2、频繁加锁操作会开销系统资源,降低效率。 3、while循环保证在某线程的条件不满足任务时,使用lockObj.wait()对线程进行阻挡,防止其继续竞争CPU资源,提高整体性能,这些线程滞留在wait set中,等待唤醒完成业务 4、【同步】在某一代码正确执行完业务后,通过lockObj.notifyAll()唤醒所有在lockObj对象等待的线程查看全部
举报
0/150
提交
取消