线程(在进程中独立运行的子任务)
单线程 特色:排队执行(必须上一个任务执行完毕才能执行下一个任务),也就是同步。
多线程 特色:异步,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);
}
}
}this
共享实例以下线程
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);
}
}get
保证多个线程操做的是同一个count同步