首页 > 基础资料 博客日记

JUC并发编程学习笔记(一)认知进程和线程

2023-11-02 17:54:42基础资料围观159

这篇文章介绍了JUC并发编程学习笔记(一)认知进程和线程,分享给大家做个参考,收藏Java资料网收获更多编程知识

进程和线程

进程

一个程序,如QQ.exe,是程序的集合

一个进程往往可以包含多个线程,至少包含一个

java默认有两个线程,GC垃圾回收线程和Main线程

线程:一个进程中的各个功能

java无法真正的开启线程,因为java是运行在虚拟机上的,所以只能通过C++,通过native本地方法调用C++开启线程

private native void start0();

并发、并行

并发:多线程操作同一资源

  • cpu单核情况下,通过快速交替模拟多条线程

并行:多个线程一起行走

  • 只有在cpu多核情况下才可能产生并行,多个线程同时进行,cpu核数决定最大并行量。线程池

并发编程的本质就是想要充分利用电脑的cpu资源

线程有几个状态

java中的Thread.State重点列举了线程的状态,其中有6中状态

public enum State {
    //新增
        NEW,
	//运行
        RUNNABLE,
    //阻塞
        BLOCKED,
    //等待,死等
        WAITING,
    //超时等待
        TIMED_WAITING,
    //终止
        TERMINATED;
    }

wait/sleep的区别

  1. 来自不同的类

    wait->Object类

    sleep->Thread类

  2. 关于锁的释放
    wait会将锁释放、sleep不会释放锁,抱着锁睡觉

  3. 使用的范围是不同的
    wait必须在同步代码块中使用
    sleep可以在任何地方使用

  4. 是否需要捕获异常
    wait不需要捕获异常,由于在同步代码块中,所以不存在超市等待的问题
    sleep必须要捕获异常,可能会发生超时等待的问题

    只要是线程都会有一个异常,那就是中断异常


文章来源:https://www.cnblogs.com/nhgtx/p/17805941.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

上一篇:大数据
下一篇:编译原理

相关文章

本站推荐

标签云