Java 线程小记(一)

原创
2016/11/16 09:57
阅读数 8

线程(在进程中独立运行的子任务)
单线程 特点:排队执行(必须上一个任务执行完毕才能执行下一个任务),也就是同步。
多线程 特点:异步,CPU在多个任务之间来回切换。
(多线程是异步的,线程被调用的时机是随机的。)

实例变量(线程安全)
多线程操作的数据是否共享

非共享实例(多个线程非访问不同一个实例变量)(代码如下)

public class TestXC
{
    public static void main(String[] args) {
        MyThread a = new MyThread("售票口一");
        MyThread b = new MyThread("售票口二");
        MyThread c = new MyThread("售票口三");
        a.start();
        b.start();
        c.start();
    }
}
class MyThread extends Thread
{
    private int count = 5;
    public MyThread(String name) {
        super();
        // 设置线程名称
        this.setName(name);
    }
    public void run() {
        super.run();
        while (count > 0) {
            count--;
            System.out.println("由" + this.currentThread().getName() + "卖出一张票,票数还剩余" + count);
        }
    }
}

 

共享实例如下

public class TestXC
{
    public static void main(String[] args) {
        MyThread a = new MyThread();
        Thread t1 = new Thread(a, "售票口一");
        Thread t2 = new Thread(a, "售票口二");
        Thread t3 = new Thread(a, "售票口三");
        Thread t4 = new Thread(a, "售票口四");
        Thread t5 = new Thread(a, "售票口五");
        t1.start();
        t2.start();
        t3.start();
        t4.start();
        t5.start();
    }
}
class MyThread extends Thread
{
    private int count = 5;

    public void run() {
        super.run();
        count--;
        System.out.println("由" + this.currentThread().getName() + "卖出一张票,票数还剩余" + count);
    }
}

保证多个线程操作的是同一个count

 

 

 

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部