Java多线程1

并行与并发

串行执行 :代码按照顺序来执行
单核、单CPU的电脑 。。。。一边听QQ音乐,一边使用idea编写代码
并发:指多个线程操作同一个资源,不是同时执行,需要交替执行,单核CPU,因为CPU执行每一个时间片很短,速度太快,看起来是同时执行(张三、李四厨师,使用同一口锅炒菜,交替执行)
并行:多核CPU,每个线程来使用一个单独的CPU的资源来运行(张三、李四厨师,一人一口锅,一起炒菜)

在这里插入图片描述
并发编程:指允许多个任务在一个时间段内重复的执行的设计结构
高并发:设计的程序,能够执行海量的任务同时执行
QPS:每秒能够响应的请求数
吞吐量:
平均响应时间:
并发的用户数:

线程和进程

进程就是计算机正在进行的一个独立的应用程序,进程是一个动态的概念,必须是进行状态,如果一个应用程序没有启动,那就不是一个进程
线程就是组成进程的基本单位,可以完成特定的功能,一个进程是有多个线程组成

进程和线程的区别
1、内存空间
进程是有独立的内存空间,每个进程之间是相互独立的,互不干扰
线程有共享的内存空间
2、安全性
进程间是相互独立的,一个线程的奔溃不会影响到其他的进程,进程是安全的
线程存在内存的共享,一个线程的崩溃可能会影响到其他的线程的执行,线程的安全性不如进程
关系:进程是相互独立,一个进程下可以有一个或者多个线程
Java里很少使用进程概念,但是Java是可以使用进程:
Runtime runtime = Runtime.getRuntime();
//ls是Linux系统中的命令,通过Java代码调用:Java创建一个进程来执行指定的命令
Process process = runtime.exec(“ls”);

Runtime runtime = Runtime.getRuntime();
//ls是Linux系统中的命令,通过Java代码调用:Java创建一个进程来执行指定的命令
Process process = runtime.exec("ls");

线程的创建
继承Thread类
实现Runable接口
实现Callable接口

实现Runable接口方式
Runable的接口定义如下:
在JDK的java.lang包路径下存在Runable的接口,该接口中存在抽象的run方法,实现Runable接口是要实现run方法

public interface Runnable {
    public abstract void run();
}

自定义一个实现Runable接口的Class类

/**
 * 线程的创建通过实现Runable的接口
 */
public class ImplRunable23 implements Runnable{
    @Override
    public void run() {
        //Thread.currentThread().getName()  打印当前线程的名字
        System.out.println(Thread.currentThread().getName()+"《》实现Runable接口");
    }
}

使用自定义类来创建多线程

 ImplRunable23 runable23 = new ImplRunable23();
        //创建线程实例
        Thread thread = new Thread(runable23);
        //start()方法启动子线程
        thread.start();
        System.out.println(Thread.currentThread().getName()+"《》主线程main");

实现Runable的创建线程步骤
1、自定义实现一个Runable接口的实现类,并实现run方法
2、实例化自定义的Runable实现类
3、创建Thread类实例,将实例化的Runable实例作为参数传递
4、启动子线程,调用Thread实例的start方法

Runable是任务体,Thread类是线程对象,线程是用来执行任务的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值