代码片段(2)[全屏查看所有代码]
1. [文件] ThreadShareDataTest.java ~ 1KB 下载(13)
01 | package cn.itcast.gz; |
02 |
03 | public class ThreadShareDataTest { |
04 | |
05 | public static void main(String[] args) { |
06 | |
07 | ShareData shareData = new ShareData(); |
08 | |
09 | Add add = new Add(shareData); |
10 | Sub sub = new Sub(shareData); |
11 | |
12 | Thread t1 = new Thread(add); |
13 | Thread t2 = new Thread(add); |
14 | Thread t3 = new Thread(sub); |
15 | Thread t4 = new Thread(sub); |
16 | |
17 | t1.start(); |
18 | t2.start(); |
19 | t3.start(); |
20 | t4.start(); |
21 | } |
22 | } |
23 |
24 |
25 | class ShareData |
26 | { |
27 | private Integer j= 100 ; |
28 | |
29 | public synchronized void add() |
30 | { |
31 | j++; |
32 | System.out.println(Thread.currentThread().getName()+ " 对j进行加法运算 " +j); |
33 | } |
34 | |
35 | public synchronized void sub() |
36 | { |
37 | j--; |
38 | System.out.println(Thread.currentThread().getName()+ " 对j进行减法运算 " +j); |
39 | } |
40 | } |
41 |
42 |
43 | class Add implements Runnable |
44 | { |
45 |
46 | private ShareData data; |
47 | public Add(ShareData data) |
48 | { |
49 | this .data = data; |
50 | } |
51 | @Override |
52 | public void run() { |
53 | data.add(); |
54 | } |
55 | } |
56 |
57 | class Sub implements Runnable |
58 | { |
59 | private ShareData data; |
60 | public Sub(ShareData data) |
61 | { |
62 | this .data = data; |
63 | } |
64 | @Override |
65 | public void run() { |
66 | |
67 | data.sub(); |
68 | } |
69 | } |
2. [文件] ThreadShareDataTest2.java ~ 853B 下载(12) 跳至 [1] [2] [全屏预览]
01 | package cn.itcast.gz; |
02 |
03 | public class ThreadShareDataTest2 { |
04 |
05 | public static void main(String[] args) { |
06 | |
07 | |
08 | final ShareData2 shareData = new ShareData2(); |
09 | |
10 | for ( int i = 0 ;i< 2 ;i++) |
11 | { |
12 | new Thread() |
13 | { |
14 | @Override |
15 | public void run() { |
16 | shareData.add(); |
17 | } |
18 | }.start(); |
19 | } |
20 | |
21 | |
22 | for ( int i = 0 ;i< 2 ;i++) |
23 | { |
24 | new Thread() |
25 | { |
26 | @Override |
27 | public void run() { |
28 | shareData.sub(); |
29 | } |
30 | }.start(); |
31 | } |
32 | |
33 | } |
34 | } |
35 |
36 | class ShareData2 |
37 | { |
38 | private Integer j = 100 ; |
39 | public synchronized void add() |
40 | { |
41 | j++; |
42 | System.out.println(Thread.currentThread().getName()+ " 对j进行加法运算 " +j); |
43 | } |
44 | |
45 | public synchronized void sub() |
46 | { |
47 | j--; |
48 | System.out.println(Thread.currentThread().getName()+ " 对j进行减法运算 " +j); |
49 | } |
50 | } |