对每个控制线程主要考虑以下几个问题( )。
A.该控制线程在执行时,是否要向其他控制线程中的对象提供或索取某些数据
B.各个控制线程的并发执行,是否需要传递一些同步控制信号
C.它在执行时是否将产生某些对其他控制线程的执行有影响的事件
D.这个消息由一个控制线程中的哪个对象服务发出?由另一个控制线程中的哪一个对象服务来处理
- · 有4位网友选择 C,占比40%
- · 有3位网友选择 B,占比30%
- · 有2位网友选择 A,占比20%
- · 有1位网友选择 D,占比10%
A.该控制线程在执行时,是否要向其他控制线程中的对象提供或索取某些数据
B.各个控制线程的并发执行,是否需要传递一些同步控制信号
C.它在执行时是否将产生某些对其他控制线程的执行有影响的事件
D.这个消息由一个控制线程中的哪个对象服务发出?由另一个控制线程中的哪一个对象服务来处理
A.按问题域的情况和系统责任的要求应该顺序地执行还是并发地执行
B.从发送者的执行到接收者的执行是否引起了控制线程的切换
C.接收者是否只有通过当前这种消息的触发才能执行
D.看是不是每个类的每个服务都曾经到达并模拟执行过
[说明]
很多时候,希望某些类只有一个或有限的几个实例,典型解决方案是所谓单身(Singleton)模式。但在多线程情况下,Singleton模式有可能出现问题,需要进行同步检查。如果对“检查singleton对象是否已经创建”进行同步,则存在严重的瓶颈,所有的线程都必须等待检查对象是否存在。解决方式是一种称为Double-Checked-Locking模式,其意图是将非必须的锁定优化掉,同步检查最多只发生一次,因此不会成为瓶颈。以下是Java语言实现,能够正确编译通过。
[Java代码]
public class USTax {
private static USTax instance=null;
(1) USTax(){}
private (2) static void doSync(){
if(instance==null){
System.out.println("实例不存在,创建实例..");
instance=(3);
System.out.println("实例创建成功");
}else{
System.out.println("实例已被创建了");
}
}
public static USTax getInstance(){
if(instance==null){
System.out.println("实例暂时不存在");
(4);//同步控制
}else{
System.out.println("实例已经存在");
}
return (5);
}
}
(1)
A.对象之间是否存在某种消息
B.这种消息是同一个控制线程内部的还是不同控制线程之间的
C.每一种消息的发出者和接受者
D.消息是同步的还是异步的
在处理器选型方面,硬件组王工与软件组张工在讨论采用哪种CPU体系结构方面发生争议。目前,流行的处理器结构包括单核结构、多处理器结构、超线程结构、多核结构、共享Cache的多核结构和超线程技术的多核结构共6种,如图12-20所示。
A.消息连接是OOA模型中对对象之间行为依赖关系的表示
B.用两种消息连接符号来表示对象之间的消息传送关系
C.表示同一个控制线程内部的消息连接
D.表示不同控制线程之间的消息连接
A.按问题域的情况和系统责任的要求应该顺序地执行还是并发地执行
B.从发送者的执行到接收者的执行是否引起了控制线程的切换
C.接收者是否只有通过当前这种消息的触发才能执行
D.看是不是每个类的每个服务都曾经到达并模拟执行过
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!