我在dos.oracle.com找到了这个
public static List synchronizedList(列表列表)
返回由指定列表支持的同步(线程安全)列表.为了保证串行访问,必须通过返回的列表完成对后备列表的所有访问.当迭代它时,用户必须手动同步返回的列表:
List list = Collections.synchronizedList(new ArrayList());
...
synchronized(list) {
Iterator i = list.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么我必须同步列表来迭代它,如果Collections.synchronizedList();它应该返回已经同步的列表?
我只是在两个线程中访问列表:一个线程只添加,另一个线程获取和删除.您建议在此方案中使用哪些其他类?
谢谢阅读.
谁能告诉我如何在修改父页面后刷新子页面?
...在子首选项页面的 createContents() 中,我正在监听对父项的更改:
ParentPlugin.getDefault()
.getPreferenceStore()
.addPropertyChangeListener(new IPropertyChangeListener()
{
public void propertyChange(PropertyChangeEvent event)
{
//REFRESH CHILD PLUGIN
};
});
Run Code Online (Sandbox Code Playgroud) 我有一个摆动工作者,配置串口连接.这个过程需要不确定的时间才能完成,有时需要1分钟才能完成.
当用户在工作线程仍在配置时单击需要配置数据的按钮时,我的问题就出现了.
我想知道如果工作线程已经完成,如何执行用户的请求.如果工作线程还活着,我希望执行等到工作线程完成.
谁能帮我理解为什么我得到不同的月份值
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
System.out.println(dateFormat.format(cal.getTime())
+ "--"
+ cal.get(Calendar.MONTH));
Run Code Online (Sandbox Code Playgroud)
令人惊讶地显示
09/09/2012--8
Run Code Online (Sandbox Code Playgroud)