多线程 Thread类,同步代码块,同步函数

来源:互联网 发布:单片机与微机的区别 编辑:程序博客网 时间:2024/05/16 01:43

这是一个多线程运行实例

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(对象){需要被同步的代码块}

同步函数

0 0