你可能会听过进程是资源分配的基本单位,这句话是怎么来的呢?在上面我们已经提到了线程必须依赖于进程而存在,在我们启动一个程序的时候我们就会开启一个进程,而这个进程会像操作系统申请资源,比如内存,磁盘和CPU等等,这就是为什么操作系统是申请资源的基本单位。
你可能也听过线程是操作系统调度的基本单位。那这又是为什么呢?首先你需要明白CPU是如何工作的,首先需要明白我们的程序会被编译成一条条的指令,而这些指令会存在在内存当中,而CPU会从内存当中一一的取出这些指令,然后CPU进行指令的执行,而一个线程通常是执行一个函数,而这个函数也是会被编译成很多指令,因此这个线程也可以被CPU执行,因为线程可以被操作系统调度,将其放到CPU上进行执行,而且没有比线程更小的可以被CPU调度的单位了,因此说线程是操作系统调度的基本单位。Java实现并发
假如现在我们有一个任务,子线程输出一下自己的线程的名字,在线程输出完自己的名字之后,主线程再输出字符串“线程执行完成”。在完成上面的任务之前,首先我们需要明白什么是主线程和子线程,所谓主线程就是在执行Java程序的时候不是通过new Thread操作这样显示的创建的线程。比如在我们的非并发的程序当中,执行程序的线程就是主线程。
假如现在我们有一个任务,子线程输出一下自己的线程的名字,在线程输出完自己的名字之后,主线程再输出字符串“线程执行完成”。上面的任务很明确就是主线程在执行输出自己线程的名字的语句必之前,须等待子线程执行完成,而在Java线程当中给我提供了一种方式,帮助我们实现这一点,可以保证主线程的某段代码可以在子线程执行完成之后再执行。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |