状态转换图

JAVA多线程之状态转换图

99封情书 提交于 2020-02-28 10:06:16
线程状态转换图如下: 1、新建(new):线程对象被创建后就进入了新建状态。如:Thread thread = new Thread(); 2、就绪状态(Runnable):也被称为“可执行状态”。线程对象被创建后,其他线程调用了该对象的start()方法,从而启动该线程。如:thread.start(); 处于就绪状态的线程随时可能被CPU调度执行。 3、运行状态(Running):线程获取CPU权限进行执行。需要注意的是,线程只能从就绪状态进入到运行状态。 4、阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权限,暂时停止运行。直到线程进入就绪状态,才有机会进入运行状态。阻塞的三种情况: 1)等待阻塞:通过调用线程的wait()方法,让线程等待某工作的完成。 2)同步阻塞:线程在获取synchronized同步锁失败(因为锁被其他线程占用),它会进入同步阻塞状态。 3)其他阻塞:通过调用线程的sleep()或join()或发出了I/O请求时,线程会进入到阻塞状态。当sleep()状态超时、join()等待线程终止或超时、或者I/O处理完毕时,线程重新转入就绪状态。 5、死亡状态(Dead):线程执行完了或因异常退出了run()方法,该线程结束生命周期。 来源: https://www.cnblogs.com/xuzhujack/p/12375765.html

TCP状态转换图

与世无争的帅哥 提交于 2020-02-23 16:10:42
文章目录 正常打开关闭 三次握手 四次挥手 状态转换图 同时打开/同时关闭 同时打开 同时关闭 状态转换图 传送数据 图是参照TCP/IP详解自己画的分解图 正常打开关闭 三次握手 第一次握手(SYN=1,seq=x) 客户端发送SYN包到服务器 客户端进入 SYN_SEND 状态,等待服务器确认 第二次握手(SYN=1,ACK=1,seq=y,ack=x+1) 服务器收到SYN包,确认客户的SYN 服务器发送SYN+ACK包 服务器进入 SYN_RECV 状态 第三次握手(ACK=1,ack=y+1) 客户端收到SYN+ACK包 客户端发送ACK包 客户端进入 ESTABLISHED 状态,服务器收到ACK包后也进入 ESTABLISHED 状态 四次挥手 因为TCP是全双工的,因此在关闭连接的时候,必须关闭两个方向上的连接。 第一次挥手(FIN=1,seq=x) 假设是客户端想要关闭连接,客户端发送一个FIN包,表示自己没有数据可以发送了,但是可以接收数据 发送完毕,客户端进入 FIN_WAIT_1 状态 第二次挥手(ACK=1,ack=x+1) 服务器收到客户端的FIN包,表明自己接受到了客户端关闭连接的请求,但服务器没有做好准备关闭连接 服务器进入 CLOSE_WAIT 状态 客户端收到ACK包,进入 FIN_WAIT_2 状态,等待服务器关闭连接 第三次挥手(FIN=1

网络编程——TCP状态转换图详解

孤街醉人 提交于 2020-01-30 01:39:51
在前面, 已经介绍了TCP协议的三路握手和四次挥手。如下图所示,TCP通信过程包括三个步骤:建立TCP连接通道(三次握手)、数据传输、断开TCP连接通道(四次挥手)。 这里进一步探究TCP三路握手和四次挥手过程中的状态变迁以及数据传输过程。先看TCP状态状态转换图。 上半部分是TCP三路握手过程的状态变迁,下半部分是TCP四次挥手过程的状态变迁。 CLOSED:起始点,在超时或者连接关闭时候进入此状态,这并不是一个真正的状态,而是这个状态图的假想起点和终点。 LISTEN:服务器端等待连接的状态。服务器经过 socket,bind,listen 函数之后进入此状态,开始监听客户端发过来的连接请求。此称为应用程序被动打开(等到客户端连接请求)。 SYN_SENT:第一次握手发生阶段,客户端发起连接。客户端调用 connect,发送 SYN 给服务器端,然后进入 SYN_SENT 状态,等待服务器端确认(三次握手中的第二个报文)。如果服务器端不能连接,则直接进入CLOSED状态。 SYN_RCVD:第二次握手发生阶段,跟 3 对应,这里是服务器端接收到了客户端的 SYN,此时服务器由 LISTEN 进入 SYN_RCVD状态,同时服务器端回应一个 ACK,然后再发送一个 SYN 即 SYN+ACK 给客户端。状态图中还描绘了这样一种情况,当客户端在发送 SYN 的同时也收到服务器端的

编译原理第八次作业

心已入冬 提交于 2019-12-03 05:19:07
1.设有 NFA M=( {0,1,2,3}, {a,b},0,{3},)其中 f(0,a)={0,1} f(0,b)={0} f(1,b)={2} f(2,b)={3}写出状态转换矩阵,状态转换图 状态转换矩阵: 状态转换图: 2.NFA 确定化为 DFA   2.1解决多值映射:子集法   (1). 上述练习1的NFA 状态转换矩阵: a b A 0 {0,1} {0] B {0,1} {0,1} {0,2} C {0,2} {0,1} {0,3] D {0,3} {0,1} {0} 状态转换图:   (2)P64页练习3 状态转换矩阵: 0 1 a {S} {V,Q} {U,Q} b {V,Q} {Z,V} {Q,U} c {Z,V} {Z} {Z} d {U,Q} {V} {Z,Q,U} e {Z,Q,U} {Z,V} {Z,Q,U} f {Z} {Z} {Z} g {V} {Z} Ø 状态转换图:   2.2   (1)发给大家的图2 状态转换矩阵: 0 1 2 D ∑{A}=ABC ∑(A)=ABC ∑(B)=BC ∑(C)=C E ∑(BC)=BC - ∑(B)=BC ∑(C)=C F ∑(C)=C - - ∑(C)=C 状态转换图:   (2).P50图3.6 状态转换矩阵: a b A ε{0}={0,1,2,4,7} ε{3,8}={3,6,7,1,2,4,8}

编译原理第八次作业

寵の児 提交于 2019-12-03 05:14:42
1.设有 NFA M=( {0,1,2,3}, {a,b},f,0,{3} ),其中 f(0,a)={0,1} f(0,b)={0} f(1,b)={2} f(2,b)={3}  画出状态转换矩阵,状态转换图,并说明该NFA识别的是什么样的语言。 答: 该状态转换矩阵为: a b 0 0,1 0 1 Ø 2 2 Ø 3 3 Ø Ø 该状态转换图为: 识别的语言为:(aIb)*abb 2.NFA 确定化为 DFA   2.1解决多值映射:子集法   (1). 上述练习1的NFA    该状态转换矩阵为: a b 0 {0} {0,1} {0} 1 {0,1} {0,1} {0,2} 2 {0,2} {0,1} {0,3} 3 {0,3} {0,1} {0}     该状态转换图为:      (2)    该状态转换矩阵为: 0 1 0 {S} {V,Q} {U,Q} 1 {V,Q} {Z,V} {Q,U} 2 {Z,V} {Z} {Z} 3 {U,Q} {V} {Z,Q,U} 4 {Z,Q,U} {Z,V} {Z,Q,U} 5 {Z} {Z} {Z} 6 {V} {Z} Ø    该状态转换图为:   2.2.解决空弧:对初态和所有新状态求ε-闭包   (1). 发给大家的图2        该状态转换矩阵为: 0 1 2 0 ε{A}={ABC} ε{A}={ABC} ε{B}=

第八次作业 非确定的自动机NFA确定化为DFA

微笑、不失礼 提交于 2019-12-03 04:51:04
1.设有 NFA M=( {0,1,2,3}, {a,b},f,0,{3} ),其中 f(0,a)={0,1} f(0,b)={0} f(1,b)={2} f(2,b)={3} 画出状态转换矩阵,状态转换图,并说明该NFA识别的是什么样的语言。 状态转换矩阵: a b 0 0,1 0 1 2 2 3 3 状态转换图: 识别的语言:(a|b)*abb 2.NFA 确定化为 DFA 1.解决多值映射:子集法 1). 上述练习1的NFA 状态转换矩阵: a b 0 0 {0,1} {0} 1 {0,1} {0,1} {0,2} 2 {0,2} {0,1} {0,3} 3 {0,3} {0,1} {0} 状态转换图: 2). P64页练习3 状态转换矩阵: 0 1 1 {S} {V,Q} {Q,U} 2 {V,Q} {V,Z} {Q,U} 3 {V,Z} {Z} {Z} 4 {Q,U} {V} {Q,U,Z} 5 {Q,U,Z} {Q,U} {Q,U,Z} 6 {V} {Z} 7 {Z} {Z} {Z} 状态转换图: 2.解决空弧:对初态和所有新状态求ε-闭包 1). 发给大家的图2 2).P50图3.6 子集法: f(q,a)={q1,q2,…,qn},状态集的子集 将{q1,q2,…,qn}看做一个状态A,去记录NFA读入输入符号之后可能达到的所有状态的集合。 步骤: 1)

编译原理 八

旧街凉风 提交于 2019-12-03 00:35:22
1.设有 NFA M=( {0,1,2,3}, {a,b},f,0,{3} ),其中 f(0,a)={0,1} f(0,b)={0} f(1,b)={2} f(2,b)={3} 画出状态转换矩阵,状态转换图,并说明该NFA识别的是什么样的语言。 状态转换矩阵: 状态转换图: NFA识别的语言: NFA M={(a|b)*abb} 2.NFA 确定化为 DFA 1.解决多值映射:子集法 1). 上述练习1的NFA 2). P64页练习3 2.解决空弧:对初态和所有新状态求ε-闭包 1). 发给大家的图2 2).P50图3.6 子集法: f(q,a)={q1,q2,…,qn},状态集的子集 将{q1,q2,…,qn}看做一个状态A,去记录NFA读入输入符号之后可能达到的所有状态的集合。 步骤: 1).根据NFA构造DFA状态转换矩阵 ①确定DFA的字母表,初态(NFA的所有初态集) ②从初态出发,经字母表到达的状态集看成一个新状态 ③将新状态添加到DFA状态集 ④重复23步骤,直到没有新的DFA状态 2).画出DFA 3).看NFA和DFA识别的符号串是否一致。 练习1的NFA(状态转换矩阵和状态转换图): P64页练习3(状态转换矩阵和状态转换图): 发给大家的图2(状态转换矩阵和状态转换图): P50图3.6(状态转换矩阵和状态转换图): 来源: https://www

文法

我与影子孤独终老i 提交于 2019-12-02 21:27:02
1.设有 NFA M=( {0,1,2,3}, {a,b},f,0,{3} ),其中 f(0,a)={0,1} f(0,b)={0} f(1,b)={2} f(2,b)={3} 画出状态转换矩阵,状态转换图,并说明该NFA识别的是什么样的语言。 状态转换矩阵 a b 0 {0,1} {0} 1 - {2} 2 - {3} 3 - - 状态转换图 来源: https://www.cnblogs.com/zhff/p/11762967.html

非确定的自动机NFA确定化为DFA

孤者浪人 提交于 2019-12-02 21:21:33
1.设有 NFA M=( {0,1,2,3}, {a,b},f,0,{3} ),其中 f(0,a)={0,1} f(0,b)={0} f(1,b)={2} f(2,b)={3} 画出状态转换矩阵,状态转换图,并说明该NFA识别的是什么样的语言。 a b 0 0,1 0 1 Φ 2 2 Φ 3 3 Φ Φ 图一 状态转换矩阵 图二 状态转换图 该NFA识别 : L(M)= (a | b) * abb 来源: https://www.cnblogs.com/a131452/p/11762829.html

非确定的自动机NFA确定化为DFA

落爺英雄遲暮 提交于 2019-12-02 21:20:45
1.设有 NFA M=( {0,1,2,3}, {a,b},f,0,{3} ),其中 f(0,a)={0,1} f(0,b)={0} f(1,b)={2} f(2,b)={3} 画出状态转换矩阵,状态转换图,并说明该NFA识别的是什么样的语言。   状态转换矩阵: a b 0 {0,1} {0} 1 - {2} 2 - {3} 3 - -   状态转换图:   NFA M识别的语言:L(M)={ ( a|b)* a b b } 来源: https://www.cnblogs.com/MRJ1/p/11762821.html