阻塞

原创 2015年11月21日 14:41:56

终结任务

  1. 在阻塞时终结
     

      sleep()可以让执行状态变为被阻塞状态,而有时你必须终止被阻塞的任务。            
    线程状态:

一个线程可以处于四种状态之一:

1:新建(new):当线程被创建时,它只会短暂地处于这种状态。此时它已经分配了必需的系统资源,并执行了初始化。此刻线程已经有资格获得CPU时间了,之后调度器将把这个线程转变为可运行状态或阻塞状态。

2:就绪(Runnable):在这种状态下,只要调度器把时间片分配给线程,线程就可以运行。也就是说,在任意时刻,线程可以运行也可以不运行。只要调度器能分配时间片给线程,它就可以运行;这不同于死亡和阻塞状态。

3:阻塞(Blocked):线程能够运行,但有某个条件组织它的运行。当线程处于阻塞状态时,调度器将忽略线程,不会分配给线程任何CPU时间。直到线程重新进入了就绪状态,它才有可能执行操作。

4:死亡(Dead):处于死亡或终止状态的线程将不再是可调度的,并且再也不会得到CPU时间,他的任务已经结束,或不再是可运行的。任务死亡的通常方式是从run()方法返回,但是任务的线程还可以被中断。

进入阻塞状态:

一个任务进入阻塞状态,可能有如下的原因:

1.通过调用sleep(milliseconds)使任务进入休眠状态,在这种情况下,任务在指定的时间内不会运行。

2.你通过wait使线程挂起。直到线程得到了notify()或notifyAll()消息,线程才会进入就绪状态

3.任务在等待某个输入/输出完成。

4.任务试图在某个对象上调用其同步控制方法,但对象锁不可用,因为另一个任务已经获取了这个锁。 

版权声明:本文为博主原创文章,未经博主允许不得转载。

简谈java中的阻塞非阻塞与同步异步

在学习java网络编程时,我遇到了同步/异步,阻塞/非阻塞着四种调用方式。在这里我就大概的说一下我对它们的理解。 同步/异步主要针对客户端:         同步:就是当客户端发出一个功能...
  • hjh_walker
  • hjh_walker
  • 2016年09月05日 12:26
  • 2070

linux select阻塞非阻塞的使用

Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(...
  • lishenglong666
  • lishenglong666
  • 2013年10月08日 10:40
  • 2730

socket阻塞与非阻塞模式

本文转载 http://blog.sina.com.cn/s/blog_63e164b00100mfvu.html 阻塞模式 Windows套接字在阻塞和非阻塞两...
  • yu_sn0w
  • yu_sn0w
  • 2015年11月27日 13:14
  • 1667

JAVA 中IO总结 之前篇阻塞、非阻塞

最近总结JAVA中的IO,遇到了有关阻塞、非阻塞、同步、异步的概念,之前也做个内核有关开发,今天温故而知新。 Linux支持同步IO,也支持异步IO,因此分为同步阻塞、同步非阻塞,异步阻塞,异步非阻塞...
  • wangzhenfei444
  • wangzhenfei444
  • 2016年06月12日 10:16
  • 5833

Socket 阻塞与非阻塞模式

阻塞模式 Windows套接字在阻塞和非阻塞两种模式下执行I/O操作。在阻塞模式下,在I/O操作完成前,执行的操作函数一直等候而不会立即返回,该函数所在的线程会阻塞在这里。相反,在非阻塞模式...
  • liang08114
  • liang08114
  • 2016年02月17日 10:53
  • 2119

Linux阻塞和非阻塞读终端

阻塞和非阻塞 读常规文件是不会阻塞的,不管读多少字节,read一定会在有限的时间内返回。从终端设备或网络读则不一定,如果从终端输入的数据没有换行符,调用read读终端设备就会阻塞,如果网络上没有接收到...
  • u011135852
  • u011135852
  • 2015年09月28日 23:50
  • 1801

tcp socket阻塞与非阻塞

1.sock默认为阻塞模式,下面的代码可对sock设置为非阻塞模式  int flags = fcntl(sock, F_GETFL, 0);     fcntl(sock, F_SETFL, fla...
  • xdshengk
  • xdshengk
  • 2016年04月05日 18:39
  • 3230

Node.JS阻塞与非阻塞

Node.js 回调函数 Node.js 异步编程的直接体现就是回调。 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。 回调函数在完成任务后就会被调用,Node 使用...
  • u011147065
  • u011147065
  • 2017年02月24日 18:19
  • 628

Verilog中阻塞(=)与非阻塞语句(<=)…

阻塞赋值语句(=)与非阻塞赋值语句( 区别叙述如下:        1、在串行语句中,阻塞赋值语句按照排列顺序依次执行;非阻塞赋值语句没有先后之分,并行执行,排在前面语句不影响后面语句(实质是通过每级...
  • c_ycy
  • c_ycy
  • 2016年12月26日 09:57
  • 815

JAVA中的阻塞队列

一.什么是阻塞队列?阻塞队列是一个在队列基础上又支持了两个附加操作的队列。2个附加操作: 支持阻塞的插入方法:队列满时,队列会阻塞插入元素的线程,直到队列不满。 支持阻塞的移除方法:队列空时,获取元素...
  • qq_16811963
  • qq_16811963
  • 2016年08月13日 00:03
  • 1996
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:阻塞
举报原因:
原因补充:

(最多只允许输入30个字)