线程基础学习:进程与线程

本文介绍了进程与线程的概念,它们的区别,串行、并发与并行的定义,以及Java中线程的三种实现方式。通过四个线程实战练习,帮助读者深入理解线程的使用。
摘要由CSDN通过智能技术生成

一、进程与线程

1.进程是什么?

        简单来说进程就是在内存中进行的程序,每个进程也都有自己独立的内存空间,其包含一个或多个线程。

2.线程是什么?

        线程就是进程中一个单一顺序的控制流,负责当前进程中程序的执行。

二、两者区别是什么 ?

上面简单的说了一下进程和线程,那么他们之间的区别在哪里?进程是一种动态概念,是程序执行时相关资源分配的最小单元,其至少包含一个线程。而线程是经常的控制单元,是CPU分配资源时的最小单元,需求的资源比进程要少可以看做是一个轻量级的进程,会共享进程中的内存,线程有独立的空间(栈、程序计数器),相互通信更加方便。

三、串行,并发与并行

串行:就是多个指令一次执行

并发:每个线程单独执行一段指令,一个CPU在线程间切换(并不是同时执行)

并行:多个CPU内核同时执行多个线程,线程是同时执行的

四、线程的实现方式

1.继承Thread类

        继承Thread会重写run()方法,然后调用start()方法来执行:

class MyThreads extends Thread{
    /**
     * 自定义线程类
     */
    public void run(){
        for (int i = 0; i < 100; i++) {
            System.out.println(Thread.currentThread().getName() +"执行了" +i);
        }
    }
}
public class MyThread{
    public static void main(String[] args) {
        MyThreads myThread = new MyThreads();
        myThread.start();
        for (int i = 0; i < 100; i++) {
            System.out.println(Thread.currentThread().getName() +"执行了" +i);
        }
    }

那么run和start这两种有什么区别???

        以本人浅薄的知识来解释就是,start会启动新的线程,不会对主线程有影响,而run只在主线程中执行

2.实现Runnable接口   

实现run方法,然后创建实现Runnable接口的对象,传入Thread对象中,之后启动线程

/**
 * 实现Runnable接口的类
 */
class MyRunnable implements Runnable{

    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println(Thread.cu
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值