【Java

您所在的位置:网站首页 java的进程和线程面试 【Java

【Java

2023-06-02 19:36| 来源: 网络整理| 查看: 265

进程和线程:

进程:启动一个QQ.exe就叫一个进程。 接着又启动一个360.exe,这叫两个进程。以此类推,每个独立执行的程序都称为进程。

线程:线程是在进程内部同时做的事情,比如在QQ里,有很多事情要同时做,比如发送消息和接受消息,同时上传文件,这就是由多线程

来实现的。

如Windows任务管理器:可以看到,后台运行搜狗输入法这个程序看作是一个进程,而搜狗运行中又有多个线程在执行。可以说,进程包含多个线程。

对CPU来说:

系统可以分配给每个进程一段有限的执行 CPU 的时间(也称为 CPU 时间片),CPU 在这段时间中执行某个进程,然后下一个时间段又跳到另一个进程中去执行。由于 CPU 切换的速度非常快,给使用者的感受就是这些任务似乎在同时运行,所以使用多线程技术后,可以在同一时间内运行更多不同种类的任务。

单线程与多线程:

单线程的特点就是排队执行,也就是同步,就像在 cmd 中输入一条命令后,必须等待这条命令执行完才可以执行下一条命令一样。这就是单线程环境的缺点,即 CPU 利用率大幅降低。

多线程环境下的执行模式,CPU 完全可以在任务 1 和任务 2 之间来回切换,使任务 2 不必等到 n秒再运行,系统的运行效率大大得到提升。这就是要使用多线程技术、要学习多线程的原因。

代码示例: class T extends Thread { private Integer i = null; public T(Integer i) { this.i = i; } public void run(){//run分时线程 for (; ; ) {//for( ; ; )这是一个死循环 System.out.println (i++); } }//这就是一个执行线程 } /** * 必须要继承Thread *

*

* 共享内存空间: * 通过Run运行可以执行多个进程,而每个进程里包含 * 多个线程。这就是进程与线程的关系。 */ public class 线程示例1 { //main是主线程 public static void main(String[] args) { Integer i = 0; T t = new T (i);//创建一个线程 T t1 = new T (i); t.start (); t1.start ();//两个同时执行 } } 输出:

可以看出,这里执行了一个程序,却开了多个线程。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3