a- 3、线程安全:
- 产生原因:
- 1. 多个线程在操作共享的数据。
- 2. 操作共享数据的线程代码有多条。
- 当一个线程在执行操作共享数据的多条代码过程中,其他线程参与了运算,就会导致线程安全问题的产生。
-
- ————————————————————————————————————————————————————————————————————
- public class ThreadSafetyDemo {
- public static void main(String[] args) {
- final Function f = new Function();
- new Thread() {
- public void run() {
- f.print();
- };
- }.start();
- new Thread() {
- public void run() {
- f.show();
- };
- }.start();
- }
- }
- class Function {
- public void print() {
- while (true) {
- for(char c:"骚年努力~~".toCharArray())
- System.out.print(c);
- System.out.println();
- }
- }
- public void show() {
- while (true) {
- for(char c:"Hello Java~~".toCharArray())
- System.out.print(c);
- System.out.println();
- }
- }
- }
- 输出结果:
- Hello Java~~
- Hello Java~~
- Hel~ //线程安全,只打印了一部分
- 骚年努力~~
- 骚年努力~lo Java~~ ////线程安全,打印重叠
- Hello Java~~
- 这里的公共资源是控制台。。。
- ————————————————————————————————————————————————————————————————————
复制代码
|
|