标签:时间 启动 src execution inf add 停止 了解 写博客
1. 多任务、进程、线程是什么?
2. 单线程程序与多线程程序
3.创建线程
4.创建第一个线程
class MyThread extends Thread{ public MyThread(String name){ super(name); } @Override public void run() { for(int i=0;i<10;i++){ System.out.println(getName()+"启动了!"); //run()里放的就是该线程要做的事情,可以被多个线程共享,就是说线程1可以去执行run } } } public class ThreadDemo { public static void main(String[] args) { MyThread myThread=new MyThread("线程1"); MyThread myThread1=new MyThread("线程2"); myThread.start();//jVM会去调用run方法 myThread1.start(); } }
通过多执行几次代码发现,线程的执行顺序是随机的,结果并不唯一。
5.使用Runnable接口创建线程
class MyThread1 implements Runnable{ @Override public void run() { System.out.println(Thread.currentThread().getName()+"运行了"); } } public class RunnableTest { public static void main(String[] args) { MyThread1 myThread1=new MyThread1(); Thread thread=new Thread(myThread1,"线程run"); thread.start(); //还是通过构造Thread对象来调用start() } }
//对start()的解释
Causes this thread to begin execution; the Java Virtual Machine * calls the <code>run</code> method of this thread. * <p> * The result is that two threads are running concurrently: the * current thread (which returns from the call to the * <code>start</code> method) and the other thread (which executes its * <code>run</code> method). * <p> * It is never legal to start a thread more than once. * In particular, a thread may not be restarted once it has completed execution.
线程开始执行,jvm会调用线程中的run()。
结果是两个线程同时执行:当前的线程(调用start()返回的线程)和其他线程(执行run())
一个线程多次start是不合法的。通常情况下一个线程完整执行完后不会再次start
6.线程状态及生命周期
7. sleep() 和 join()
sleep():app的定期刷新,定时执行。俗称:休眠
join():要等调用该方法的线程执行完成后,才能执行。俗称:插队
8. 线程的优先级
Note:线程什么时候运行是不确定的,即使设置了优先级,影响线程启动的因素很多,导致线程还是随机启动的
//两种设置优先级的方式
thread.setPriority(10);thread.setPriority(Thread.MAX_PRIORITY);
//获取优先级
thread.getPriority(
9.线程同步
问题:在前面我们知道,线程的启动和停止总是随机的,不可预测。
模拟银行取款为例,存款为一个线程,取款为一个线程。比如账户有100元,现存进去100,有200了,再取50,剩150。
可能出现的问题是在你执行存款方法的时候,还没执行到保存的方法,线程就被取款线程取代,结果就是,账户就剩50元。
关键字
见另一篇博客:
10 线程间的通信
wait()、死锁,notify():唤醒等待的线程,notifyAll()
标签:时间 启动 src execution inf add 停止 了解 写博客
原文地址:https://www.cnblogs.com/liu-chen/p/11920788.html