进程和线程的概念
- 进程是程序的一次执行,线程是进程中执行的一段程序片段。
- 进程间是独立的,占用地址空间,上下文环境,线程运行在进程地址空间内。
- 进程间通过IPC技术进行共享,同一进程下的线程天然共享同一进程地址空间。
- 同一进程的代码不能同步执行,除非引入线程。
- 进程退出时线程都要销毁。
多线程的用途
- 提升效率,将占据长时间的程序放到后台去处理
- 提升用户体验,如进度条
- 在单道系统中不需要进程,在多道系统中为了提升CPU利用率,引入了进程。
- 进一步为了降低资源分配的消耗和进程内的通信,引入了线程
多线程实现
- C++中的线程函数依赖于系统API,不能跨平台,而JAVA的线程程序是跨平台的
- 通过继承Rnnnable()接口和Thread类实现
public class RunTest implements Runnable {
public void run() {
}
}
public class ThreadTest extends Thread {
public void run() {
}
}
区别
Runnnable 接口继承不影响类再继承其他接口
Thread类继承后不能再继承其他类
线程同步与线程池
- 同步
synchronized(static obj) - 线程池
ThreadPoolExecutor(size, keepAliveTime, queue)
网友评论