首页 > 编程知识 正文

状态变量的认识异步结构的核心在于

时间:2023-05-05 10:56:09 阅读:242523 作者:4113

所有的异步结构都有一个或一组状态变量,利用状态变量,我们可以将业务逻辑拆分成小的模块。拆分有什么好处呢?可以将复杂的问题简化为多个简单的子问题,更容易处理。

举个例子,Java并发包里有个FutureTask类,主要作用是异步地做一些运算,返回运算结果。

FutureTask类有个状态state:

private volatile int state;private static final int NEW = 0;private static final int COMPLETING = 1;private static final int NORMAL = 2;private static final int EXCEPTIONAL = 3;private static final int CANCELLED = 4;private static final int INTERRUPTING = 5;private static final int INTERRUPTED = 6;

你能看到在FutureTask的核心方法里,都有对state的处理,通过state将这些方法联系在一起了。get方法并不知道run方法有没有结束,也不用关心run方法有没有执行,get方法只需关注state状态,简化了关注点,功能很清晰。而run方法只关注执行Callable内的逻辑,依据执行结果设置state,不关心有没有线程执行了get方法。

复杂的程序都需要分层(模块化),分层是工程师的大道!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。