全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

如何学多线程

发布时间:2023-06-29 10:01:00
发布人:zyh

  一、什么是进程

  在复习线程之前,小编先给大家说一下进程的概念。

  所谓的进程,就是系统进行资源分配和调用的独立单元,每一个进程都有它独立的内存空间和系统资源。

  目前的计算机系统,可以分为单进程和多进程系统,其区别如下:

  ·单进程操作系统:dos(一瞬间只能执行一个任务)

  ·多进程单用户操作系统:Windows(一瞬间只能执行多个任务)

  ·多进程多用户操作系统:Linux(一瞬间只能执行多个任务)

如何学多线程

  二. 什么是线程

  然后我们再来看看什么是线程。

  所谓的线程,就是进程里面的一条执行路径,多个线程可以共享进程里面的内存空间和系统资源。一个进程中可以有多个线程,各个线程都有不同的分工。

  那么进程和线程有什么关系呢?看看小编给大家的总结吧:

  ·进程与进程之间,其内存空间和系统资源是独立的;

  ·同一个进程里的多个线程之间,其内存空间和系统资源是共享的;

  ·一个进程里可以有一条或一条以上的线程;

  ·如果一个进程里只有一条线程,这条线程就叫做主线程;

  ·线程是在进程里的,他们是包含与被包含的关系。

  三. 创建线程的方式

  那么我们该怎么创建出一个线程呢?一般情况下,我们可以采用以下方式。

  1.继承线程类

  在这种方式中,我们可以创建一个MyThread类继承Thread,并重写run方法,代码如下:  

public class Test01 {
public static void main(String[] args) {
//创建线程的对象
MyThread t = new MyThread();
//启动线程
t.start();
}
}
//线程类
class MyThread extends Thread{
//当前线程抢到cpu资源后,就会执行run方法
@Override
public void run() {
System.out.println("当前线程抢到资源了");
}
}

  2.实现Runnable接口

  第二种方式就是实现Runnable接口。我们可以创建一个Task类,实现Runnable接口并重写run方法。  

public class Test01 {
public static void main(String[] args) {
Thread t = new Thread(new Task());
t.start();
}
}
//任务类
class Task implements Runnable{
//当前线程抢到cpu资源后,就会执行run方法
@Override
public void run() {
System.out.println("抢到资源了");
}
}

  另外我们还可以通过实现Callable接口,或是利用Executors线程池创建线程,这两种方式小编就不演示实现代码了。

  四. 总结

  最后小编再给大家总结一下今天的重点:

  1.进程与进程的关系:进程独享内存空间和系统资源;

  2.线程与进程的关系:一个进程中至少包含一个线程;

  3.线程与线程的关系:在同一个进程里,多个线程共享内存空间和系统资源;

  4.一个进程中可以包含多个线程,但只有一个主线程。

#如何学多线程

相关文章

什么是接口回调?

什么是接口回调?

2023-10-15
什么是云管平台?

什么是云管平台?

2023-10-15
什么是桥接方法?

什么是桥接方法?

2023-10-15
什么是软件设计?

什么是软件设计?

2023-10-15

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取