1. 并发与并行的概念:
并发:一个处理器在同一时段内处理不同的任务
并行: 多个处理器或者一个多核处理器在同一时刻处理多个不同的任务。
比喻: 并发指的是一个人在一段时间内吃三个馒头,之间高速切换; 并行是指三个人同时吃三个馒头。
2. 进程与线程:
应用程序:电脑里面所安装的程序可以称为应用程序,再不被调用的时候是被存储在硬盘内部的。
进程:一旦用户双击运行该程序,该程序将被加载进入到内存,进入了内存的应用程序被称作进程。
线程: 线程附属于进程。比如,一个进程有多个功能,像腾讯电脑管家有许多功能,查毒,清垃圾等。每一个这样的功能会被操作系统连接一条线路到cpu方便被cpu所执行操作。这样的一条条线路就叫做线程。具有多条这样线路的应用程序叫做多线程应用程序。
3. 线程调度:
线程的调度可以被分为分时调度和抢占式调度。
所谓的分时调度是指所有线程轮流使用cpu, 平均分配每个线程占用cpu的时间。
抢占式调度是指优先级高的线程会优先被cpu服务。java程序使用的是抢占式调度。
4.主线程:
java程序里,负责服务main()函数的线程就是主线程。如果在main()函数里面又开辟了几条别的线程,这些线程将会与主线程一起抢占cpu的使用权。
5. 创建线程类:
在java中,用java.lang.Thread类来表示线程。java里面的每一个线程都必须是Thread类或其子类的对象。每个线程的任务就是完成一定的程序流,只是多个线程之间会出现抢占cpu的情况罢了。
在java里,创建多个线程通常有两种方法--继承Thread类和实现Runnable接口。
代码展示如何创建多线程:
先贴结果:

Test类:

MyThread类:

方法总结:建立一个线程类MyThread, 继承自Thread类,并在该类中实现了线程的操作(重写run方法)。在测试类中生成该类对象,调用对象的start方法,即可开辟出一条新的线程。该线程与主线程并发的执行。不可多次启动同一线程,线程结束后也不可以再次调用。实际上,两个线程的输出是随机的。
网友评论