并发问题—>买火车票
public class Demo04 implements Runnable {
private int ticketNums = 10 ;
@Override
public void run ( ) {
while ( true ) {
if ( ticketNums <= 1 ) {
break ;
}
try {
Thread. sleep ( 200 ) ;
} catch ( InterruptedException e) {
e. printStackTrace ( ) ;
}
System. out. println ( Thread. currentThread ( ) . getName ( ) + "--->拿到了第" + ticketNums-- + "张票" ) ;
}
}
public static void main ( String[ ] args) {
Demo04 demo04 = new Demo04 ( ) ;
new Thread ( demo04, "旺仔" ) . start ( ) ;
new Thread ( demo04, "AD钙" ) . start ( ) ;
new Thread ( demo04, "娃哈哈" ) . start ( ) ;
}
}
龟兔赛跑
public class Race implements Runnable {
private static String winner;
@Override
public void run ( ) {
for ( int i = 0 ; i <= 100 ; i++ ) {
if ( Thread. currentThread ( ) . getName ( ) . equals ( "兔子" ) && i% 10 == 0 ) {
try {
Thread. sleep ( 1 ) ;
} catch ( InterruptedException e) {
e. printStackTrace ( ) ;
}
}
boolean flag = gameOver ( i) ;
if ( flag) {
break ;
}
System. out. println ( Thread. currentThread ( ) . getName ( ) + "跑了" + i + "步" ) ;
}
}
private boolean gameOver ( int steps) {
if ( winner != null) {
return true ;
} {
if ( steps == 100 ) {
winner = Thread. currentThread ( ) . getName ( ) ;
System. out. println ( "winner is:" + winner) ;
return true ;
}
}
return false ;
}
public static void main ( String[ ] args) {
Race race = new Race ( ) ;
new Thread ( race, "兔子" ) . start ( ) ;
new Thread ( race, "乌龟" ) . start ( ) ;
}
}