![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
现代操作系统
文章平均质量分 59
追星星Sondy
这个作者很懒,什么都没留下…
展开
-
同步和异步有何异同,在什么情况下分别使用他们?
同步和异步有何异同,在什么情况下分别使用他们?答:如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。...原创 2022-04-18 20:40:21 · 213 阅读 · 0 评论 -
sleep() 和 wait() 有什么区别?
sleep() 和 wait() 有什么区别?sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。...原创 2022-04-18 20:36:25 · 57 阅读 · 0 评论 -
线程的通信
文章目录一、线程通信方法1.wait方法2.notify()/notifyAll()二、代码示例三、经典例题:生产者/消费者问题一、线程通信方法1)wait() 与 notify() 和 notifyAll()①wait():令当前线程挂起并放弃CPU、同步资源并等待,使别的线程可访问并修改共享资源,而当前线程排队等候其他线程调用notify()或notifyAll()方法唤醒,唤醒后等待重新获得对监视器的所有权后才能继续执行。②notify():唤醒正在排队等待同步资源的线程中优先级最高者结束等原创 2022-04-18 19:35:10 · 522 阅读 · 0 评论 -
线程的同步
文章目录一.问题的提出二、问题的原因三、解决办法Synchronized的使用方法同步机制中的锁同步的范围释放锁的操作不会释放锁的操作一.问题的提出1)多个线程执行的不确定性引起执行结果的不稳定。2)多个线程对共享数据的访问,会造成操作的不完整性,会破坏数据。二、问题的原因当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完,另一个线程参与进来执行。导致共享数据的错误。三、解决办法对多条操作共享数据的语句,只能让一个线程都执行完,在执行过程中,其他线程不可以原创 2022-04-18 18:12:20 · 53 阅读 · 0 评论 -
线程的生命周期
JDK中用Thread.State类定义了线程的几种状态要想实现多线程,必须在主线程中创建新的线程对象。Java语言使用Thread类及其子类的对象来表示线程,在它的一个完整的生命周期中通常要经历如下的五种状态:新建: 当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建状态就绪:处于新建状态的线程被start()后,将进入线程队列等待CPU时间片,此时它已具备了运行的条件,只是没分配到CPU资源运行:当就绪的线程被调度并获得CPU资源时,便进入运行状态, run()方法定义了.转载 2022-04-18 17:34:20 · 65 阅读 · 0 评论 -
Java中线程的创建与使用
文章目录前言一、Thread类1.构造器二、API创建线程的两种方式1.方式一:继承Thread类2.方式二:实现Runnable接口三、继承方式和实现方式的联系与区别1.区别2.实现方式的好处四、Thread类的有关方法1.常用方法2.其他方法五、线程的调度1.调度策略2.线程的优先级六、线程的调度前言1)Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread类来体现。2)Thread类的特性①每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常原创 2022-04-16 17:59:25 · 257 阅读 · 0 评论 -
程序、进程与线程间关系
文章目录一、基本概念二、单核CPU与多核CPU的理解三、并行与并发四、多线程优点五、何时需要多线程一、基本概念程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。进程(process)是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程。——生命周期1)如:运行中的QQ,运行中的MP3播放器2)程序是静态的,进程是动态的3)进程作为资源分配的基本单位,系统在运行时会为每个进程分配不同的内存区域线原创 2022-04-16 16:20:25 · 1981 阅读 · 0 评论