zoukankan      html  css  js  c++  java
  • Java多线程

    1、一个进程就是一个正在运行的应用程序的实例,程序段+相关的数据段+PCB构成了进程实体。

    2、进程由两个部分组成

    (1)操作系统来管理这个进程的内核对象;

    (2)这个进程拥有的地址空间。

    3、线程除了能够访问进程的资源外,每个进程还拥有自己的栈。

    4、引入线程的好处:由于线程比进程更小,基本上不拥有系统资源,因此对线程的调度所付出的开销就会小很多,更能高效地提高系统内多个程序间并发执行的程度。

    5、进程和线程

    (1)在引入线程的os中,通常把进程作为操作系统中能资源分配的基本单位,线程是操作系统独立运行和独立调度的基本单位;

    (2)线程可以看成是轻量级的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器,线程的切换开销小。

    6、Java的线程是通过java.lang.Thread类来实现的

    7、线程的两种模式:

    (1)协作式:一个线程保留对CPU的控制知道它自己决定放弃;

    (2)抢占式:系统可以任意的从线程中夺回对CPU的控制权,再把控制权分配给其它的线程,两次切换的时间间隔叫做时间片。

    8、无论synchronized关键字加载方法上还是对象上,它取得的锁都是在对象上。

    9、wait和sleep的区别:

    (1)来源不同:sleep是Thread类提供的方法,wait继承自object;

    (2)代码位置不同:wait需要写在synchronize语句块里面;

    (3)是否释放锁定对象:调用wait方法需要释放锁定对象,sleep时别的线程也不可以访问锁定对象。

  • 相关阅读:
    【Leetcode】23. Merge k Sorted Lists
    【Leetcode】109. Convert Sorted List to Binary Search Tree
    【Leetcode】142.Linked List Cycle II
    【Leetcode】143. Reorder List
    【Leetcode】147. Insertion Sort List
    【Leetcode】86. Partition List
    jenkins 配置安全邮件
    python 发送安全邮件
    phpstorm 同步远程服务器代码
    phpUnit 断言
  • 原文地址:https://www.cnblogs.com/fankongkong/p/6383725.html
Copyright © 2011-2022 走看看