java 多线程-资源共享
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 多线程-资源共享相关的知识,希望对你有一定的参考价值。
- new Thread(Run,String s).start() ,new Thread()可以传字符串
- Thread.currentThread().getName();当前线程的名字,即传入的字符串
- 重写的run()方法没有返回值,且不能抛出异常
- Thread.sleep(200);暂停该线程200毫秒延迟,1000毫秒约等于一秒
模拟抢票:
public class ThreadDownload implements Runnable
private int num=99;
public void run()
while(true)
if(num<0)
break;
try
Thread.sleep(200);
catch (InterruptedException e)
// TODO Auto-generated catch block
e.printStackTrace();
//模拟延迟,停止200毫秒
System.out.println(Thread.currentThread().getName()+"-"+num--);
public static void main(String[]args)
//一份资源
ThreadDownload web=new ThreadDownload();
System.out.println(Thread.currentThread().getName());//在main线程中,打印main
//多个代理
new Thread(web,"a").start();
new Thread(web,"b").start();
new Thread(web,"c").start();
模拟龟兔赛跑:
public class ThreadDownload implements Runnable
private String winner;
public void run()
for(int step=1;step<=100;step++)
if(Thread.currentThread().getName().equals("兔子")&&step%10==0)
try
Thread.sleep(100);
catch (InterruptedException e)
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(Thread.currentThread().getName()+"-->"+step);
boolean flag=gameOver(step);
if(flag)
break;
private boolean gameOver(int step)
if(winner!=null)
return true;
else
if(step==100)
winner=Thread.currentThread().getName();
System.out.println("winner=="+winner);
return true;
return false;
public static void main(String[]args)
//一份资源
ThreadDownload td=new ThreadDownload();
new Thread(td,"乌龟").start();
new Thread(td,"兔子").start();
以上是关于java 多线程-资源共享的主要内容,如果未能解决你的问题,请参考以下文章