Version 3.0
线程
线程
Java 基础知识
2
2
目标
目标
•
了解多线程的概念
•
掌握如何创建线程
•
了解死锁的概念
•
掌握线程同步
•
掌握使用 wait() 和 notify() 在线程之间
进行通信
3
3
多任务处理
多任务处理
•
什么是进程呢?
进程包括运行中的程序和程序所使用到的各系统资源。
•
基于进程的特点是允许计算机同时运行两个或更多的程
序。
•
而一个进程又是由多个线程所组成的,线程是程序中的
一个执行流,每个线程都有自己独有的栈空间,但代码
区是共享的,即不同的线程可以执行同样的函数。
多任务处理有两种类型:
- 基于进程
- 基于线程
4
4
思考
思考
•
我们的 CPU 真的能够同时执行多个任务吗?
•
那么为什么要多任务?
如果没有多进程
如果没有多线程
•
线程就是增加一个新的虚拟 cpu 吗?
•
多线程的好处
在于可以提高 CPU 的利用率,在多线程程序中,一
个线程必须等待的时候, CPU 可以运行其它的线程而不是
等待,这样就大大提高了程序的效率。
•
线程也是程序,所以线程需要占用内存,线程越多占用内
存也越多
5
5
多线程
多线程
•
在 Java 中,一个应用程序可以包含多个线程。每个线
程执行特定的任务,并可与其他线程“并发”执行
•
基于线程所需的开销更少
–
在多任务中,各个进程需要分配它们自己独立的地
址空间
–
多个线程可共享相同的地址空间并且共同分享同一
个进程
•
进程间调用涉及的开销比线程间通信多
•
线程间的切换成本比进程间切换成本低