线程等待的方法(java 线程等待)

      最后更新:2023-09-26 03:56

      进程进入等待状态有哪几种方式

      进程进入等待状态有:A、CPU调度给优先级更高的线程。B、阻塞的线程获得资源或者信号。C、在时间片轮转的情况下,如果时间片到了。D、获得spinlock未果。a、是由运行态进入就绪态。b、是有阻塞太进入就绪态。c、是由就绪态进入运行态。d、一直就绪态。内容一个计算机系统进程包括(或者说“拥有”)下列数据:那个程序的可运行机器码的一个在存储器的映像。 分配到的存储器(通常包括虚拟内存的一个区域)。存储器的内容包括可运行代码、特定于进程的数据(输入、输出)、调用堆栈、堆栈(用于保存运行时运数中途产生的数据)。 分配给该进程的资源的操作系统描述符,诸如文件描述符(Unix术语)或文件句柄(Windows)、数据源和数据终端。
      根据进程执行时的间断性,决定了进程可能具有多种状态。但事实上,运行中的进程是具有以下三种基本状态。1、就绪状态,英文称Ready。进程已获得除处理器外的所需资源,只是在等待分配处理器资源,只要分配了处理器进程就可执行。准备就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列。当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。2、运行状态,英文称Running。进程占用处理器资源,处于此状态的进程的数目小于等于处理器的数目。在没有其他进程可以执行时(如所有进程都在阻塞状态),系统通常会自动执行系统的空闲进程。3、阻塞状态,英文称Blocked,系统由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理器资源分配给该进程,该进程也无法进行运行。定义狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。
      进程进入等待状态有哪几种方式?(D)//等待是不是就绪状态? A CPU调度给优先级更高的线程B 阻塞的线程获得资源或者信号C 在时间片轮转的情况下,如果时间片到了D 获得spinlock未果我觉a是由运行态进入就绪态b是有阻塞太进入就绪态c是由就绪态进入运行态 d一直就绪态
      进程进入等待状态有哪几种方式

      如何等待线程结束

      等待一个线程的结束 Win32 提供WaitForSingleObject()函数,其第一个参数是一个核心对象(如线程)的 handle。为方便讨论,把等待线程称为线程#1,把被等待线程称为线程#2。调用 WaitForSingleObject()并放置一个“线程句柄”作为参数,将使线程#1开始睡眠,直到线程#2结束。像Sleep()函数一样,WaitForSingleObject()也有一个参数用来指定最长的等待时间。DWORD WaitForSingleObject(HANDLE hHandle,DWORD dwMilliseconds);hHandle:等待对象的 handle(代表一个核心对象)。dwMilliseconds:等待的最长时间。时间终了,即使 handle尚未成为激发状态,此函数也要返回。此值可以是0(代表立刻返回),也可以是 INFINITE代表无穷等待。如果函数失败,返回WAIT_FAILED。这时可调用 GetLastError()取得更多信息。此函数的成功有三个因素:1. 等待的目标(核心对象)变成激发状态。返回值为WAIT_OBJECT_0。2. 核心对象变成激发状态之前,等待时间终了。返回值为WAIT_TIMEOUT。3. 如果一个拥有mutex(互斥器)的线程结束前没有释放mutex,则传回 WAIT_ABANDONED。(abandoned:废弃)获得一个线程对象的 handle之后,WaitForSingleObject()要求操作系统让线程 #1 睡眠,直到以下任何一种情况发生:1. 线程#2结束2. dwMilliseconds时间终了。该值系从函数调用后开始计算。由于操作系统持续追踪线程#2,即使线程#2 失事或被强迫结束,WaitForSingleObject()仍然能够正常运作。如果想一直等待某个线程,直到线程退出,可以用如下代码:WaitForSingleObject( hThrd, INFINITE );关于time-out,有一个特别重要的用途,但很少被人注意。设定time-out为0,能够检查handle的状态并立刻返回,没有片刻停留。如果handle已经备妥,那么这个函数会成功并传回 WAIT_OBJECT_0。否则,这个函数立刻返回并传回 WAIT_TIMEOUT。另外可以利用 time-out提供一个动画,表示正在等待某个线程的结束。可以每 500毫秒就time-out一次,更新图示,然后再继续等待。 WaitForSingleObject()可以面对许多种 handles工作,不一定非要是的线程 handle。事实上,Win32中大部分以HANDLE表示的对象都能够作为 WaitForSingleObject()的等待目标。视所拥有的对象不同,操作系统等待的事情也不一样。形式上来说,系统等待着这一对象“被激发”。
      如何等待线程结束

      java关于等待线程结束的问题!

      简单地可以使用 Thread.join() 方法来等待线程结束,例如这样修改一下:Thread t = new Thread() {  // 同原来的 run()};t.start();// 调用这个方法,会挂起当前线程直至线程t结束t.join();join()方法的文档是这么写的: Waits for this thread to die.也可以用wait/notify或mutex等机制来对两个线程进行同步,稍微复杂一点,例如使用 wait/notify:new Thread() {  public void run() {    // 同原来的代码,加上以下代码用于同步    synchronized (results) {      results.notifyAll();    }  }}.start();// 通过以下代码挂起当前线程,等待其他线程通知synchronized (results) {  results.wait();}以供参考。同 i178269245 所说,等待线程结束势必要挂起当前线程,也就没必要用线程了,也许需要重新考虑一下这种实现方式。
      有这种需求用什么线程,线程就是做异步处理的。
      java关于等待线程结束的问题!

      在java中同时起多个线程,然后怎么让多个线程进入等待状态?

      class MyThread extends Thread { static Object lock = new Object();public void run() {// TODO Auto-generated method stub}public void toWait() {synchronized(lock){try {lock.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public static void toNotifyAll(){synchronized(lock){lock.notifyAll();}}} //让线程对象在run方法中调用toWait使其等待,调用静态方法toNotifyAll唤醒所有线程
      在java中同时起多个线程,然后怎么让多个线程进入等待状态?

      如何实现java主线程等待子线程执行完毕之后再执行

      在你的主线程中用一个join的方法,你要等待谁,就用谁调用,比如,你要等待线程a结束,就用a.join();这样就可以了。记住哦,这条语句写在哪个线程里,哪个线程就要等待调用这个方法的其他线程。就是说,你在主线程里写了这条语句,那么主线程就要等待线程a执行完后,主线程才会执行。
      让主线程等待,或着睡眠几分钟。用Thread.sleep()或者TimeUnit.SECONDS.sleep(5);
      如何实现java主线程等待子线程执行完毕之后再执行

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类