标签:实现 启动 系统 结束 imp 共享 键盘 run方法 stat
我们通常所得操作系统是多任务的OS。这个任务一般指的就是进程,比如:我们听音乐和写文档对于我们来说是同时执行的。那么是如何实现的呢?这主要是操作系统上的时间片,通常时间很短。每个时间片内将CPU分配给某一个任务,时间片结束,CPU将自动回收,再分配给另外任务。从外部看,所有任务是同时在执行。但是在CPU上,任务是按照串行依次运行(单核CPU)。如果是多核,多个进程任务可以并行。但是单个核上,多进程只能串行执行。
多线程在一个子任务发生IO堵塞时可以让cpu切换到另一个子任务,这样cpu知识在一个程序之间进行切换,所消耗的代价较小。例如:你让一个扫地阿姨帮你扫地,但是这个房间锁了,此时你只需要让她扫隔壁的房子就好。如果是进程的切换相当于你让她去扫另一栋楼,这时所消耗的时间就很多了。
public class MutiThread {
public static void main(String[] args) {
// new Thread1().start();//实例化之后可以直接start
new Thread(new Thread2()).start();//必须借助中间类Thread进行start
while(true){
try {
Thread.sleep(1000);
System.out.println(Thread.currentThread().getName());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
/**
* 实现多线程编程的方式1:继承Thread,重写run方法
*
*/
class Thread1 extends Thread{
@Override
//线程的代码段,当执行start()时,线程从此出开始执行
public void run() {
while(true){
System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
/**
* 实现多线程编程的方式1:实现Runnable,实现run方法
*
*/
class Thread2 implements Runnable{
@Override
public void run() {
while(true){
System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
标签:实现 启动 系统 结束 imp 共享 键盘 run方法 stat
原文地址:https://www.cnblogs.com/cstdio1/p/12236035.html