我是靠谱客的博主 酷炫凉面,最近开发中收集的这篇文章主要介绍Java学习笔记6——多线程(根据狂神说视频整理)Java学习笔记6——多线程(根据狂神说视频整理),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Java学习笔记6——多线程(根据狂神说视频整理)

1.为什么要多线程?

平常我们所写的程序都是单线程的吗,效率慢。
举个例子:

public static void main(String[] args){
   sentenceA;
   function();//执行方式是main开始执行sentenceA,再执行function中的1
              //、2、3语句,最后再执行sentenceB语句。
   sentenceB;
}
void function(){
  sentence1;
  sentence2;
  sentence3;
}
public class Test07 {
    public static void main(String[] args) {
        new Thread(()-> System.out.println("线程"+Thread.currentThread().getName()),"线程1").start();
        new Thread(()-> System.out.println("线程"+Thread.currentThread().getName()),"线程2").start();
        new Thread(()-> System.out.println("线程"+Thread.currentThread().getName()),"线程3").start();

    }
}

二者的区别如图:
在这里插入图片描述

2.程序、进程、线程

  1. 程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。
  2. 进程是程序的依次执行的过程,是个动态的概念。是系统资源分配的单位。
  3. 通常在一个进程可包含若干个线程。

3.线程中的内存分配

在这里插入图片描述
每个线程都有程序计数器(CP)来标记程序执行到那个位置;还有栈,栈空间操作起来最快但是栈很小;cp和栈是每个线程私有的。
堆区是进程中所有线程共有的区域,共享资源在这。

4.线程创建的方式

  1. 继承Thread类;
  2. 实现Runnable接口;(推荐)
    静态代理模式:new Thread(()->System.out.println(“线程”));
  3. 实现Callable;(了解)

5.线程的五种状态

  1. 创建:线程一旦new出来进入创建状态
  2. 就绪:调用start(),进入就绪状态,但并不是立即调度
  3. 运行:真正的运行run中的代码块
  4. 阻塞:调用sleep、wait或同步锁定时,线程阻塞。
  5. 死亡:线程结束。

6.线程的一些常用方法

6.1 sleep()

  1. static void sleep(mills):让当前程序睡眠mills毫秒;
  2. sleep 存在异常 InterruptedException;
  3. sleep到达后线程进入就绪状态;
  4. sleep不释放锁;

6.2 yield()

  1. yield():礼让线程;
  2. 让当前线程暂停,但不阻塞;
  3. 线程由运行状态变为就绪状态;
  4. 由CPU重新调度,有可能还是此线程。

6.3 join()

强制插队,thread.join()后,执行完thread再执行其他线程,此时其他线程阻塞。

7.线程的状态

  1. NEW
  2. RUNNNABLE
  3. BLOCKED
  4. WAITING
  5. TERMINATED
    用thread.getState()获得thread当前状态;

8.线程优先级

可以设置线程优先级:1-10;
MIN_PRIORITY=1;
NORM_PRIORITY=5;
MAX_PRIORITY=10;
相关方法:getPriority()、setPriority()

9.守护线程

setDaemon(true)//设置为守护线程
线程分为用户线程和守护线程,系统不必等守护线程结束就结束

10.线程同步

1.synchronized(obj){}
2.lock();


unlock();

最后

以上就是酷炫凉面为你收集整理的Java学习笔记6——多线程(根据狂神说视频整理)Java学习笔记6——多线程(根据狂神说视频整理)的全部内容,希望文章能够帮你解决Java学习笔记6——多线程(根据狂神说视频整理)Java学习笔记6——多线程(根据狂神说视频整理)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部