这是一个多线程运行实例
class Demo{
private String name;
Demo(String name) {
this.name= name;
}
public void show (){
for(int x =0 ;x<5; x++)
{
System.out.println(name+"="+x);
}
}
}
public class ClassDemo {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Demo d1= new Demo("小明");
Demo d2= new Demo("小红");
d1.show();
d2.show();
}
}
运行结果如下
多线程卖票实例
class Maipiao implements Runnable //extends Thread
{
private int num = 100; //比如卖100张票
public void run()
{
while (true){
if(num>0){//票少于0就不能出售
System.out.println(Thread.currentThread().getName()+"卖票"+num--);
}
}
}
}
public class Mai {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Maipiao m = new Maipiao();
Thread t1 = new Thread(m);
Thread t2 = new Thread(m);
Thread t3 = new Thread(m);
Thread t4 = new Thread(m);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
运行结果如下
同步代码块
在java中 多个线程因为存在共享的数据,操作共享数据的线程有多条,容易产生安全问题 我们可以用同步代码块来解决
同步代码块的格式为synchronize(对象){需要被同步的代码块}
同步函数