青训营学习笔记一

77 阅读2分钟

关于多线程的学习

线程简介

通过多条道路,解决一条道路堵塞的问题,一个进程可以有多个线程,入视频中同时听声音,看图像,看弹幕,等等

Process与Thread

说起进程,就不得不说下程序。程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。

而进程则是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单作

通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的的单位。

注意:很多多线程是模拟出来的,真正的多线程是指有多个cpu,即多核,如服务器。如果是模拟出来的多线程,即在一个cpu的情况下,在同一个时间点,cpu只能执行一个代码,因为切换的很快,所以就有同时执行的错局。

线程的创建方式

继承Thraed方法
实现Runnable方法
实现Callable方法

1.Thread类

1.继承thread类

2.重写run方法

3.在main方法中调用start方法

线程不一定立即执行,由cpu调度安排

2.runnable接口

定义MyRunnable类实现Runnable接口

实现run()方法,编写线程执行体

创建线程对象,调用s'tart()方法启动线程

3.Callable接口(了解)

现实

public class Demo003 implements Runnable{
private int ticketNums=10;
public void run(){
    while (true){
        if (ticketNums<0){
            break;
        }
        try {
            Thread.sleep(200);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        System.out.println(Thread.currentThread().getName()+"拿到了第"+ticketNums--+"张票");
    }
}

public static void main(String[] args) {
    Demo003 demo003=new Demo003();
    new Thread(demo003,"小明").start();
    new Thread(demo003,"小黄").start();
    new Thread(demo003,"黄牛").start();
}

}