- 用接口方法实现多线程程序,Cat线程循环20次输出“我是Cat在运行”,Dog线程循环20次输出“我是Dog在运行”,在主方法中启动这两个线程,主线程循环20次输出“我是main在运行”,要求对线程输出的时候进行休眠0.5秒中,设置Cat线程的优先级为最小,Dog线程的优先级为最大。
public class Test{
public static void main(String[] args){
catThread ct = new catThread();
dogThread dt = new dogThread();
Thread c1 = new Thread(ct);
Thread b1 = new Thread(dt);
c1.start();
b1.start();
c1.setPriority(1);
b1.setPriority(10);
for(int i=1;i<=10;i++){
try{
System.out.println("我是main线程正在运行");
Thread.sleep(500);
}catch(Exception e){
e.printStackTrace();
}
}
}
}
class catThread implements Runnable{
public void run(){
int i;
for(i=1;i<=10;i++){
try{
System.out.println("我是CAT在运行");
Thread.sleep(500);
}catch(Exception e){
e.printStackTrace();
}
}
}
}
class dogThread implements Runnable{
public void run(){
int i;
for(i=1;i<=10;i++){
try{
System.out.println("我是dog在运行行");
Thread.sleep(500);
}catch(Exception e){
e.printStackTrace();
}
}
}
}
- 编写程序,用多线程实现主线程,左手和右手线程,三个线程都一直随机产生10—100的整数,谁一旦产生出50这个整数就退出循环。输出格式为:
“主线程随机产生的第1个数为:10”
“主线程随机产生的第2个数为:26”
“主线程随机产生的第3个数为:50,我可以退出循环了!”
import java.util.*;
public class Test{
public static void main(String[] args){
int x,i=1;
LeftHand lh=new LeftHand();
RightHand rh=new RightHand();
Random r=new Random();
lh.start();
rh.start();
while(true){
x=r.nextInt(90)+10;
if(x==50){
System.out.println("主线程随机产生的第"+i+"个数为:"+x+"我可以退出循环了!");
break;
}
System.out.println("主线程随机产生的第"+i+"个数为:"+x);
i++;
}
}
}
class LeftHand extends Thread{
public void run(){
int y,p=1;
Random r=new Random();
while(true){
y=r.nextInt(90)+10;
if(y==50){
System.out.println("左手线程随机产生的第"+p+"个数为:"+y+"我可以退出循环了!");
break;
}
System.out.println("左手线程随机产生的第"+p+"个数为:"+y);
p++;
}
}
}
class RightHand extends Thread{
public void run(){
int z,q=1;
Random r=new Random();
while(true){
z=r.nextInt(90)+10;
if(z==50){
System.out.println("右手线程随机产生的第"+q+"个数为:"+z+"我可以退出循环了!");
break;
}
System.out.println("右手线程随机产生的第"+q+"个数为:"+z);
q++;
}
}
}
- 编写卖票程序,5个线程同时卖50张票,要求卖票的时候加入休眠语句。并且显示线程名字,即哪个线程在卖第几张票。
Public class Test{
public static void main(String[] args){
TicketWindow tw=new TicketWindow();
Thread t1=new Thread(tw,"窗口1");
Thread t2=new Thread(tw,"窗口2");
Thread t3=new Thread(tw,"窗口3");
Thread t4=new Thread(tw,"窗口4");
Thread t5=new Thread(tw,"窗口5");
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
}
class TicketWindow implements Runnable{
private int ticket=50;
public void run(){
while(true){
if(ticket>0){
try{
System.out.println(Thread.currentThread().getName()+"正在卖第"+ticket--+"张票");
Thread.sleep(2000);
}catch(Exception e){
e.printStackTrace();
}
}
}
}
}