
1、extends 继承 Thread类,重写run方法。
class 定义类名 extends Thread{ @Override public void run(){ …… } }
启动线程:
Thread th = new Thread(自定义线程对象); th.start();
第二种定义线程方式:
new Thread(){ @Override public void run() { for(int i = 0; i < 10; i++){ System.out.println("线程二"); } } }.start();
2、implements 实现Runnable接口
class 自定义类 implements Runnable{ @Override public void run() { …… } }
启动线程:
Thread th = new Thread(自定义线程对象); th.start();
1、创建状态
2、就绪状态
3、运行状态
4、阻塞状态
5、死亡状态



四、当并行、并发情况导致问题,用synchronized关键进行标识
将抢票情况做一个简单地模拟
当拥有线程锁机制synchronized时,其共同地资源num总票数并不会产生错误的情况。


当不拥有线程锁机制synchronized时,其共同地资源num总票数会因为并发的机制而产生错误。


原文:https://www.cnblogs.com/Unlimited-Rain/p/12554814.html