一分钟带你学多线程
什么是进程
在复习线程之前,波哥先给大家说一下进程的概念。
所谓的进程,就是系统进行资源分配和调用的独立单元,每一个进程都有它独立的内存空间和系统资源。
目前的计算机系统,可以分为单进程和多进程系统,其区别如下:
单进程操作系统:dos(一瞬间只能执行一个任务)
多进程单用户操作系统:Windows(一瞬间只能执行多个任务)
多进程多用户操作系统:Linux(一瞬间只能执行多个任务)
什么是线程
然后我们再来看看什么是线程。
所谓的线程,就是进程里面的一条执行路径,多个线程可以共享进程里面的内存空间和系统资源。一个进程中可以有多个线程,各个线程都有不同的分工。
那么进程和线程有什么关系呢?看看波哥给大家的总结吧:
进程与进程之间,其内存空间和系统资源是独立的;
同一个进程里的多个线程之间,其内存空间和系统资源是共享的;
一个进程里可以有一条或一条以上的线程;
如果一个进程里只有一条线程,这条线程就叫做主线程;
线程是在进程里的,他们是包含与被包含的关系。
创建线程的方式
那么我们该怎么创建出一个线程呢?一般情况下,我们可以采用以下方式。
继承线程类
在这种方式中,我们可以创建一个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("当前线程抢到资源了");
}
}
实现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线程池创建线程,这两种方式波哥就不演示实现代码了,感兴趣的同学可以私信波哥获取教程哦。
猜你喜欢LIKE
相关推荐HOT
更多>>servlet底层原理是什么?
1、ServletAPI核心类与接口2、Servlet类处理请求的流程创建servlet类的步骤:创建一个命名为TestServlet继承javax.servlet.http.HttpServlet类详情>>
2023-05-30 10:41:22多线程的优势与劣势分别是什么?
多线程是指在同一个程序中,同时运行多个线程,每个线程都可以独立执行不同的任务,相互之间不会干扰。多线程的优势和劣势如下:优势:提高程序...详情>>
2023-05-30 10:32:12设计模式之生产者与消费者的代码实现
本文主要讲述生产者和消费者模式,文中会使用通俗易懂的案例,使你更好地学习本章知识点并理解原理,做到有道无术。什么是生产者和消费者模式生...详情>>
2023-05-30 10:25:46从零开始学Java之interface接口
一.接口简介简介Java中的接口(interface)类似于是一种特殊的抽象类,它也是众多抽象方法的集合。接口的定义方式、组成部分都与抽象类相似,却比...详情>>
2023-05-29 11:26:17热门推荐
如何进行mysql数据备份?
沸什么是servlet的生命周期?servlet请求处理流程是怎样的?
热servlet底层原理是什么?
热怎样编写java程序?
新多线程的优势与劣势分别是什么?
ssm框架的作用与原理是什么?
设计模式之生产者与消费者的代码实现
接口和抽象类有什么区别?4个方面对比
从零开始学Java之interface接口
从零开始学Java之Java中的内部类是怎么回事?
一分钟带你了解MySQL——基础与介绍
在java中,super关键字怎样使用
什么是事件流以及事件流的传播机制 ?
弹性盒有哪些属性是在父元素身上?