-
要读的书 core Java 和 Java Concurrency in practice查看全部
-
synchronized关键字实现互斥行为,既可以出现在方法体之上也可以出现在方法体内,以一种块的形式出现。 然后通过lockObject的wait方法(注意:wait的线程被存放在wait set 中)和notifyAll方法实现同步。 步骤: 1.互斥:同一时间,只能有一个线程访问数据 2.同步:通信机制;一个线程完成,以某种方式通知其他线程 3.锁的概念:private final Object lockObj = new Object(); 4.互斥实现方式:synchronized关键字 synchronized(lockObj){---执行代码----}加锁操作 lockObj.wait();线程等待状态,以避免线程持续申请锁,不去竞争cpu资源 lockObj.notifyAll();唤醒所有lockObj对象上等待的线程查看全部
-
争用条件(Race Condition):当多个线程同时共享访问同一数据(内存区域)时,每个线程都尝试操作该数据,从而导致数据被破坏(corrupted),这种现象称为争用条件。 线程之间的调度是通过分时和抢占来完成的。查看全部
-
System.out.print();-------------格式化输出 ①.%d-----------输出整数 ②.%10.2f-------输出一个浮点数,小数点前有10位,小数点后为2位 ③.%n-----------换行查看全部
-
一个线程在阻塞状态下(例如sleep),此时interrupt的话,将会产生两个结果: 1、进程的interrupt状态被清除(cleard)而非被设置(set)。 2、sleep方法会抛出异常。查看全部
-
在线程中,停止线程的方法:设置旗标 使用volatile 定义boolean running=true,通过设置标志变量running,来结束线程。 如本文:volatile boolean keepRunning=true; 这样做的好处是:使得线程有机会使得一个完整的业务步骤被完整地执行,在执行完业务步骤后有充分的时间去做代码的清理工作,使得线程代码在实际中更安全查看全部
-
stop()方法本身是Java1.0版本提供的一个停止线程的方式。 官方标注为:Deprecated。所以对我们来说不是一个正确的停止线程的方式。 所以不能使用stop()方法来停止线程。查看全部
-
1.加入join是为了让舞台线程最后停止,如果不加有可能舞台线程结束,军队线程还未停止,就好比导演喊停,演员还在演!可以在join后面加入测试语句System.out.println("舞台结束!");,然后去掉或者保留join观察效果。 2.volatile 关键字 保证了线程可以正确地读取其他线程写入的值,如果不写成volatile,由于可见性的问题,当前线程有可能不能读到这个值//可见性JMM(JAVA内存模型)happens-before原则、可见性原则 用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的值 3.Thread.yield();//让出处理器时间,公平竞争查看全部
-
每一个java文件中只能有一个public类 实现了Runnable接口的run方法中用Thread.currentThread().getName()来获取线程名字。 Thread actress = new Thread(new Actress(),"name");其中name为线程名字。查看全部
-
继承Thread类,实现Runnable接口 两者都要重写public void run()方法查看全部
-
在程序设计语言中没有哪一种特性如线程一般矛盾。一方面可以简化模型,编写强大的代码,另一方面会因为考虑不周而面临bug。查看全部
-
Thread查看全部
-
实现了Runnable接口的run方法中用Thread.currentThread().getName()来获取线程名字。 Thread actress = new Thread(new Actress(),"name");其中name为线程名字。查看全部
-
隋唐演义的三个对象查看全部
-
继承Thread类,实现Runnable接口 两者都要重写public void run()方法查看全部
举报
0/150
提交
取消