在我惯用的例子中,对于团队成员列表的线程安全有什么影响?
我可以依赖run()方法所看到的列表状态来保持一致吗?
假设
该setATeamMembers方法仅在创建ATeamEpisodebean 时由spring调用一次
该init方法在#1之后由spring(init-method)调用
这个ATeamMember类是不可变的
我是否需要声明teamMembers volatile或类似?
我忽略了这种方法还有其他可怕的问题吗?
如果这很明显,或者rtfm明显失败,请道歉
感谢致敬
埃德
package aTeam;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class ATeamEpisode implements Runnable{
private List<ATeamMember> teamMembers;
/* DI by spring */
public void setATeamMembers(List<ATeamMember> teamMembers){
this.teamMembers = new ArrayList<ATeamMember>(teamMembers);
}
private Thread skirmishThread;
public synchronized void init(){
System.out.println("Starting skirmish");
destroy();
(skirmishThread = new Thread(this,"SkirmishThread")).start();
}
public synchronized void destroy(){
if (skirmishThread != null){
skirmishThread.interrupt();
skirmishThread=null; …Run Code Online (Sandbox Code Playgroud) 我想使用maven-replacer-plugin在我的index.html文件中重命名我的javascript import语句.
但是我只想在路径开头的地方这样做 app
index.html代码段
...
<!-- rename this one to app/something12345.js -->
<script src="app/something.js"></script>
<!-- leave this one as it is -->
<script src="vendor/angular.js"></script>
...
Run Code Online (Sandbox Code Playgroud)
到目前为止,在我的pom.xml中,我有maven-replacer-plugin的配置
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.2</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<file>target/${project.build.finalName}/index.html</file>
<replacements>
<replacement>
<token>(\.js")</token>
<value>12345.js"</value>
</replacement>
</replacements>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
目前,这显然将取代所有的.js比赛.
我可以在这<token>部分中加入一些神奇的咒语吗?