计算机文章翻译(英译汉)

来源:百度知道 编辑:UC知道 时间:2024/06/18 08:16:23
Approach I (Critical Section)
This involves making the getFileLogger method a Critical Section so that
only one thread can ever execute it at any given point in time. This can be
accomplished by simply declaring the class-level method getFileLogger as
synchronized.
public class FileLogger implements Logger {
private static FileLogger logger;
private FileLogger() {
}public static synchronized FileLogger getFileLogger() {
if (logger == null) {
logger = new FileLogger();
}
return logger;
}
public synchronized void log(String msg) {
FileUtil futil = new FileUtil();
futil.writeToFile("log.txt”,msg, true, true);
}
}
This simple change turns the getFileLogger method into a Critical
Section and guarantees that no two threads ever execute the getFileLogger
method at the same time. This completely eliminates the possibility of the
FileLogger constructor getting invoked more than onc

方法一(临界区)
这涉及到决策方法的关键部分,使
只有一个线程执行它都不能在任何特定的时间点。这可能是
通过简单地宣布类级别的方法同步。
公共类实现记录器(
私营静态记录仪;
私营 ( ) (
)公共静态同步 ( ) (
如果(记录==空) (
记录=新( ) ;

返回记录;

公众同步无效日志(字符串味精) (
;
( “ log.txt ” ,味精,真实,真实) ;


这个简单的变化,把方法的关键
科和保障,没有任何两个线程都执行
方法在同一时间。这完全消除的可能性
构造函数被调用不止一次内获得,
方法。
办法之二(静态早期初始化)
但必须指出的是,同步的方法有重大影响
整体应用性能。一般情况下,同步运行的方法很多
慢,多达100倍,低于其对口。同样地
替代宣布方法同步的
记录变量可以早期初始化。
公共类实现记录器(
/ /初始化早期
私营静态记录=新( ) ;
私营 ( ) (

公共静态( ) (
返回记录;

公众同步无效日志(字符串味精) ;
( 味精,真实,真实) ;


这无需任何检查或初始化内 -
记录器的方法。其结果是, 成为线程安全的,无需自动宣布它作为同步。
练习题
1 。设计一个数据库连接类的线程安全的单身。
2 。打印机后台打印程序设计类的线程安全的单身

方法一(临界区)

这涉及到决策方法的getFileLogger关键部分,使

只有一个线程执行它都不能在任何特定的时间点。这可能是

通过简单地宣布类级别的方法getFileLogger

同步。

公共类Fi