卖票
Thread线程类
package demo1 ; public class Ticket extends Thread { public static int num= 100 ; @Override public void run ( ) { while ( true ) { synchronized ( Ticket . class ) { if ( num> 0 ) { System . out. println ( getName ( ) + "卖第 " + num+ " 张门票" ) ; num-- ; try { Thread . sleep ( 10 ) ; } catch ( InterruptedException e) { throw new RuntimeException ( e) ; } } else { break ; } } } }
}
测试类
package demo1 ; public class Main { public static void main ( String [ ] args) { Ticket t1= new Ticket ( ) ; Ticket t2= new Ticket ( ) ; t1. start ( ) ; t2. start ( ) ; }
}
运行结果
D : \Program \JDK17 . 0.9 \bin\java. exe "-javaagent:D:\Program\IDEA202303\IntelliJ IDEA 2023.3\lib\idea_rt.jar=5665:D:\Program\IDEA202303\IntelliJ IDEA 2023.3\bin" - Dfile . encoding= UTF - 8 - classpath E : \WorkSpace \IDEA \Java \DuoXianChengDemo \DuoXianChengDemo \target\classes demo1. Main
Thread - 0 卖第 100 张门票
Thread - 0 卖第 99 张门票
Thread - 0 卖第 98 张门票
Thread - 0 卖第 97 张门票
Thread - 0 卖第 96 张门票
Thread - 0 卖第 95 张门票
Thread - 0 卖第 94 张门票
Thread - 0 卖第 93 张门票
Thread - 0 卖第 92 张门票
Thread - 0 卖第 91 张门票
Thread - 0 卖第 90 张门票
Thread - 0 卖第 89 张门票
Thread - 0 卖第 88 张门票
Thread - 0 卖第 87 张门票
Thread - 0 卖第 86 张门票
Thread - 1 卖第 85 张门票
Thread - 1 卖第 84 张门票
Thread - 1 卖第 83 张门票
Thread - 1 卖第 82 张门票
Thread - 1 卖第 81 张门票
Thread - 1 卖第 80 张门票
Thread - 0 卖第 79 张门票
Thread - 1 卖第 78 张门票
Thread - 0 卖第 77 张门票
Thread - 0 卖第 76 张门票
Thread - 0 卖第 75 张门票
Thread - 0 卖第 74 张门票
Thread - 0 卖第 73 张门票
Thread - 0 卖第 72 张门票
Thread - 0 卖第 71 张门票
Thread - 0 卖第 70 张门票
Thread - 1 卖第 69 张门票
Thread - 1 卖第 68 张门票
Thread - 1 卖第 67 张门票
Thread - 0 卖第 66 张门票
Thread - 0 卖第 65 张门票
Thread - 1 卖第 64 张门票
Thread - 1 卖第 63 张门票
Thread - 1 卖第 62 张门票
Thread - 0 卖第 61 张门票
Thread - 0 卖第 60 张门票
Thread - 0 卖第 59 张门票
Thread - 0 卖第 58 张门票
Thread - 0 卖第 57 张门票
Thread - 0 卖第 56 张门票
Thread - 0 卖第 55 张门票
Thread - 0 卖第 54 张门票
Thread - 0 卖第 53 张门票
Thread - 0 卖第 52 张门票
Thread - 0 卖第 51 张门票
Thread - 0 卖第 50 张门票
Thread - 0 卖第 49 张门票
Thread - 0 卖第 48 张门票
Thread - 0 卖第 47 张门票
Thread - 0 卖第 46 张门票
Thread - 0 卖第 45 张门票
Thread - 0 卖第 44 张门票
Thread - 0 卖第 43 张门票
Thread - 0 卖第 42 张门票
Thread - 1 卖第 41 张门票
Thread - 1 卖第 40 张门票
Thread - 0 卖第 39 张门票
Thread - 0 卖第 38 张门票
Thread - 0 卖第 37 张门票
Thread - 0 卖第 36 张门票
Thread - 0 卖第 35 张门票
Thread - 0 卖第 34 张门票
Thread - 0 卖第 33 张门票
Thread - 1 卖第 32 张门票
Thread - 1 卖第 31 张门票
Thread - 1 卖第 30 张门票
Thread - 0 卖第 29 张门票
Thread - 0 卖第 28 张门票
Thread - 0 卖第 27 张门票
Thread - 0 卖第 26 张门票
Thread - 1 卖第 25 张门票
Thread - 0 卖第 24 张门票
Thread - 0 卖第 23 张门票
Thread - 0 卖第 22 张门票
Thread - 0 卖第 21 张门票
Thread - 0 卖第 20 张门票
Thread - 1 卖第 19 张门票
Thread - 1 卖第 18 张门票
Thread - 1 卖第 17 张门票
Thread - 1 卖第 16 张门票
Thread - 1 卖第 15 张门票
Thread - 1 卖第 14 张门票
Thread - 1 卖第 13 张门票
Thread - 1 卖第 12 张门票
Thread - 1 卖第 11 张门票
Thread - 1 卖第 10 张门票
Thread - 0 卖第 9 张门票
Thread - 1 卖第 8 张门票
Thread - 1 卖第 7 张门票
Thread - 1 卖第 6 张门票
Thread - 1 卖第 5 张门票
Thread - 0 卖第 4 张门票
Thread - 0 卖第 3 张门票
Thread - 0 卖第 2 张门票
Thread - 1 卖第 1 张门票进程已结束,退出代码为 0
送礼物
Thread线程类
package demo1 ; public class Ticket extends Thread { public static int num= 100 ; @Override public void run ( ) { while ( true ) { synchronized ( Ticket . class ) { if ( num> 10 ) { System . out. println ( getName ( ) + "送 " + num) ; num-- ; try { Thread . sleep ( 10 ) ; } catch ( InterruptedException e) { throw new RuntimeException ( e) ; } } else { break ; } } } }
}
测试类
package demo1 ; public class Main { public static void main ( String [ ] args) { Ticket t1= new Ticket ( ) ; Ticket t2= new Ticket ( ) ; t1. setName ( "小张" ) ; t2. setName ( "小 王" ) ; t1. start ( ) ; t2. start ( ) ; }
}
运行结果
D : \Program \JDK17 . 0.9 \bin\java. exe "-javaagent:D:\Program\IDEA202303\IntelliJ IDEA 2023.3\lib\idea_rt.jar=5739:D:\Program\IDEA202303\IntelliJ IDEA 2023.3\bin" - Dfile . encoding= UTF - 8 - classpath E : \WorkSpace \IDEA \Java \DuoXianChengDemo \DuoXianChengDemo \target\classes demo1. Main
小张送 100
小张送 99
小张送 98
小张送 97
小张送 96
小张送 95
小张送 94
小张送 93
小张送 92
小张送 91
小张送 90
小张送 89
小张送 88
小 王送 87
小 王送 86
小 王送 85
小 王送 84
小 王送 83
小 王送 82
小 王送 81
小 王送 80
小 王送 79
小 王送 78
小 王送 77
小 王送 76
小 王送 75
小张送 74
小 王送 73
小 王送 72
小 王送 71
小 王送 70
小 王送 69
小 王送 68
小张送 67
小张送 66
小张送 65
小张送 64
小 王送 63
小 王送 62
小 王送 61
小张送 60
小张送 59
小张送 58
小 王送 57
小张送 56
小张送 55
小张送 54
小 王送 53
小张送 52
小 王送 51
小张送 50
小张送 49
小张送 48
小张送 47
小 王送 46
小 王送 45
小 王送 44
小 王送 43
小 王送 42
小 王送 41
小 王送 40
小 王送 39
小 王送 38
小 王送 37
小 王送 36
小 王送 35
小 王送 34
小 王送 33
小 王送 32
小 王送 31
小 王送 30
小 王送 29
小 王送 28
小 王送 27
小 王送 26
小 王送 25
小 王送 24
小 王送 23
小 王送 22
小 王送 21
小张送 20
小张送 19
小张送 18
小张送 17
小张送 16
小张送 15
小张送 14
小张送 13
小张送 12
小张送 11 进程已结束,退出代码为 0
打印奇数数字
Thread线程类
package demo1 ;
public class MyThread extends Thread { public static int num= 0 ; @Override public void run ( ) { while ( true ) { synchronized ( MyThread . class ) { if ( num<= 100 ) { if ( num% 2 == 1 ) { try { Thread . sleep ( 100 ) ; } catch ( InterruptedException e) { throw new RuntimeException ( e) ; } System . out. println ( getName ( ) + " " + num) ; } else { System . out. println ( num) ; } num++ ; } else { break ; } } } }
}
测试类
package demo1 ; public class Main { public static void main ( String [ ] args) { MyThread t1= new MyThread ( ) ; MyThread t2= new MyThread ( ) ; t1. setName ( "小张" ) ; t2. setName ( "小 王" ) ; t1. start ( ) ; t2. start ( ) ; }
}
运行结果
D : \Program \JDK17 . 0.9 \bin\java. exe "-javaagent:D:\Program\IDEA202303\IntelliJ IDEA 2023.3\lib\idea_rt.jar=6107:D:\Program\IDEA202303\IntelliJ IDEA 2023.3\bin" - Dfile . encoding= UTF - 8 - classpath E : \WorkSpace \IDEA \Java \DuoXianChengDemo \DuoXianChengDemo \target\classes demo1. Main
0
小张 1
2
小张 3
4
小张 5
6
小张 7
8
小张 9
10
小张 11
12
小张 13
14
小张 15
16
小张 17
18
小张 19
20
小张 21
22
小 王 23
24
小 王 25
26
小 王 27
28
小 王 29
30
小 王 31
32
小 王 33
34
小 王 35
36
小 王 37
38
小 王 39
40
小 王 41
42
小 王 43
44
小 王 45
46
小 王 47
48
小 王 49
50
小 王 51
52
小 王 53
54
小 王 55
56
小 王 57
58
小 王 59
60
小 王 61
62
小 王 63
64
小 王 65
66
小张 67
68
小张 69
70
小 王 71
72
小 王 73
74
小 王 75
76
小张 77
78
小张 79
80
小张 81
82
小张 83
84
小张 85
86
小张 87
88
小张 89
90
小张 91
92
小张 93
94
小张 95
96
小张 97
98
小张 99
100 进程已结束,退出代码为 0
抢红包
Thread线程类
package demo1 ; import java. util. Random ; public class MyThread extends Thread { public static double money = 100 ; public static int count = 3 ; public static final double MIN = 0.01 ; @Override public void run ( ) { while ( true ) { synchronized ( MyThread . class ) { if ( count== 0 ) { System . out. println ( getName ( ) + "没抢到红包" ) ; } else { if ( count== 1 ) { System . out. println ( getName ( ) + "抢到红包,金额:" + money) ; money= 0 ; count= 0 ; } else { Random random= new Random ( ) ; count-- ; double num= money- MIN * count; double price= random. nextDouble ( num) ; if ( price<= MIN ) { price= MIN ; } System . out. println ( getName ( ) + "抢到红包,金额:" + price) ; money= money- price; } } } } }
}
测试类
package demo1 ; import abc. MyThread ; import java. util. Random ; public class Main { public static void main ( String [ ] args) { MyThread t1= new MyThread ( ) ; MyThread t2= new MyThread ( ) ; MyThread t3= new MyThread ( ) ; MyThread t4= new MyThread ( ) ; MyThread t5= new MyThread ( ) ;
t1. start ( ) ; t2. start ( ) ; t3. start ( ) ; t4. start ( ) ; t5. start ( ) ; }
}
抽奖箱
Thread线程类
package demo1 ; import java. util. ArrayList ;
import java. util. Collections ; public class MyThread extends Thread { public static ArrayList < Integer > list; public MyThread ( int [ ] nums) { list = new ArrayList < > ( ) ; for ( int num : nums) { list. add ( num) ; } } @Override public void run ( ) { while ( true ) { synchronized ( MyThread . class ) { if ( list. isEmpty ( ) ) { break ; } else { Collections . shuffle ( list) ; int money = list. remove ( 0 ) ; System . out. println ( getName ( ) + " " + money) ; } } try { Thread . sleep ( 1000 ) ; } catch ( InterruptedException e) { throw new RuntimeException ( e) ; } } }
}
测试类
package demo1 ;
import java. util. Random ; public class Main { public static void main ( String [ ] args) { int [ ] nums= new int [ ] { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 } ; MyThread t1= new MyThread ( nums) ; MyThread t2= new MyThread ( nums) ; t1. setName ( " 1 " ) ; t1. start ( ) ; t2. start ( ) ; }
}