一、操作系统中线程和进程的概念
进程是一个内存中运行中的应用程序,一个进程中可以运行多个线程,也可以运行一个线程,比如百度网盘下载东西,百度网盘运行的是一个进程,里面下载的东西就是多个线程。
二、Java中的线程
1.线程的状态
新建状态:使用new关键字和Thread类或其子类创建一个线程对象后,线程就进入新建状态。
就绪状态:当线程对象调用start()方法之后,该线程就进入了就绪状态。就绪状态的线程处于就绪队伍中通了,需要等待JVM里的线程调度器去调度。
运行状态:如果就绪状态的线程获取了CPU的资源,就可以执行run(),这时线程处于运行状态。
阻塞状态:如果一个线程被执行了sleep、suspend的方法时,失去所占用资源之后,该线程就从运行状态进入阻塞状态。
死亡状态:一个运行状态的线程完成了它的任务或者其他终止条件发生时,该线程就没用了。
2.线程的优先级
每个线程都有优先级,这样有助于操作系统他们的调度顺序。取值范围1-10,默认的创建的线程是5。
3.线程的创建
实现Runnable接口;
通过继承Thread类;
通过Callable和Future创建线程;
同步与异步
同步:排队执行
,
效率低但是安全
.
异步:
同时执行
,
效率高但是数据不安全
在多线程编程时,你需要了解
1.线程死锁
2.线程控制:挂起、停止和恢复