multithreading相关内容
我有一个 BufferedImage 实例的集合,一个主图像和一些主图像,它们是通过在main上调用 getSubImage 创建的图片。子图像不重叠。我也在修改子图像,我想把它分成多个线程,每个子图像一个。 从我对 BufferedImage , Raster 和 DataBuffer 工作,这应该是安全的,因为: 每个 BufferedImage 的实例(及其各自的 Writabl
..
考虑以下代码: - class CalculateSeries实现Runnable { int total; public void run(){ synchronized(this){// * LINE 1 * for(int i = 1; i
..
我想立即停止正在运行的线程。这是我的代码: A类: 公共类A (){ public void methodA(){ For(int n = 0; n
..
我在Java的MultiThreading概念方面很差。 我正在通过ReentrantLock功能和用法。 我得到它更灵活然后同步并添加更多功能。 我可以看到它上面提到的例子,我很好。 我无法弄清楚它在商业中有用的实时场景。 我可以看到最好避免死锁。 有人能提供用例吗?没有ReentrantLock就很难解决这种用例。 或者可以指向某些链接会有所帮助。
..
当我在随Ubuntu 12.04一起分发的OpenJDK 6 JVM上运行我的多线程Java程序时,所有线程都安排在一个核心上。但是当我从Oracle最新的1.7 JDK在JVM上运行完全相同的程序时,它很好地围绕所有24个可用内核旋转了我的20个线程。 OpenJDK文档解释了Java线程将被分配给本机线程,但是它似乎没有工作。我的OpenJDK安装中是否有配置错误,或者它是否真的不支持多核硬件
..
我试图查看实际的Java文档,描述传递给 ConcurrentHashMap.computeIfAbsent mappingFunction 多少次的行为c $ c>和 ConcurrentHashMap.computeIfPresent 方法。 的Javadoc> ConcurrentHashMap.computeIfAbsent 似乎很清楚地说 mappingFunction 最多只会执
..
我有一个班级注意和一个班级会议。在类注意中有 ArrayList 名为 noteList 。当创建会议的对象时,它将在 noteList 中注册。 我只想在主类中说明可以同时(或在关闭时)创建 Meeting 的两个对象。我的程序是: 公共类注意{ //某些字段和方法hier public void add (会议m){ notes.add(m); } private s
..
编写一个名为RaceHorse的类,它扩展了Thread。每个RaceHorse都有一个名称和run()方法,显示名称5000次。编写一个实例化2个RaceHorse对象的Java应用程序。完成的最后一个RaceHorse是失败者。 这就是问题所在。 我已经写了两个类的代码两个运行线程 以下是代码: RaceHorse class RaceHorse扩展Thread {
..
我想阅读并解析很多文件。由于有超过10000个文件需要解析,我想通过使用线程来加快这个过程。 例如,如果我有5个线程,我希望让它们同时读取一定数量的文件,以便更快地读取和解析过程。这可能吗?通过将其分成线程,我可以获得任何显着的加速吗?如果是这样,我该怎么做? P.S。我并不反对使用外部库。 我正在使用jdk 1.6 解决方案 如果要读取的文件很多,最好的方法是每个文件只
..
给定一个在没有被阻塞时被中断的线程(即没有抛出InterruptedException),该线程在以后尝试睡眠时是否会抛出InterruptedException? 文档确实没有明确说明: InterruptedException - 如果有任何线程中断了当前线程。抛出此异常时,当前线程的中断状态被清除。 解决方案 是的,确实如此。 关于这一点,文档可能并不十分清楚,但这
..
我可以选择让用户从FileChooser提交多个文件,以便由某些代码处理。结果将是用于读取文件的IO,然后是对存储数据的实际繁重计算。允许用户选择多个文件,并且由于文件处理不依赖于所选择的任何其他文件,因此使用线程更容易处理此事。 此外,用户需要有一个按钮列表,每个要取消的任务一个,以及“全部取消”按钮。因此,我必须考虑选择性地或集体地杀死一个或所有任务的能力。 最后一个要求是我不让用
..
所以,我正在开发一款游戏引擎,并取得了不错的进步。但是,我的引擎是单线程的,将更新和渲染拆分为单独的线程的优点听起来是一个非常好的主意。 我该怎么做?单线程游戏引擎(概念上)很容易制作,你有一个循环,你更新 - >渲染 - >睡眠 - >重复。但是,我想不出一个打破更新和渲染分离的好方法,特别是如果我改变它们的更新速率(比如我经历更新循环25x一秒,并且有60fps用于渲染) - 如果我开始
..
我对于并发运行的线程以及它们对对象的锁定有一个问题。据我所知,调用wait()方法的线程将进入等待列表,并允许来自阻塞列表的另一个线程接管锁定和对象(在同步代码中)。 如果现在对该对象具有锁定的此线程调用notify()方法,则它会唤醒调用wait()的线程并将其移动到阻止列表。 调用notify()方法的线程会发生什么。它是否仍然锁定对象或现在是否在等待名单上? 问候 解决方
..
我已经看到了以下代码,我认为在addElement方法的实现中有一个无用的while循环。它应该永远不会出现比size + 1更多的元素,因为已经存在写锁定。 那么为什么addElement方法删除元素直到它获得这个条件 true while(concurrentLinkedQueue。 size()> = maxSize) 任何关于此的指针都会很棒。 以下是
..
我想测试是否已初始化 ThreadLocal 而未实际初始化它。当然,代码需要是线程安全的。理想情况下我想要这样的东西: class TestableThreadLocal扩展ThreadLocal { public boolean isInitialized(){ ... } } 但是我如何实现这个方法呢? 编辑:动机:我已经子类化了
..
我是多线程的新手,我编写了这段代码,通过同时运行线程增量并打印变量来打印数字1-10000。 这是代码我正在使用: package threadtest; 公共类Main { static int i = 0; static Object lock = new Object(); 私有静态类增量器扩展线程{ @Override public void
..
我想知道同一个应用程序可以在CPU上运行多少个线程? 我同样简单: import java.awt.SystemColor; import java.util.Date; 公共类Threadcall { / ** * @param args命令行参数 * / public static void main( String [] args){ //这里的TO
..
我正在阅读 Java Threads 3rd Ed。由奥克斯和黄(O'Reilly 2004)。 他们在整本书中都有一个Swing打字游戏的例子。 他们定义的类主要是 javax.swing.JComponent 的自定义子类。 看起来很像对我来说错误的是他们使用各种同步方法使那些 JComponent 的线程安全。我的印象是Swing组件不应该是线程安全的,而是应该始终从Swing事件
..
我有一个固定线程池为15的Java应用程序,该机器Solaris 10 SPARC有16个CPU。添加池大大提高了性能,但我想知道池中是否有太多线程。使用更少的线程可以提高性能,还是Solaris可以很好地完成线程调度。 假设池大量使用15个CPU,那么其他应用程序线程需要各种CPU原因,并发垃圾收集就是一个很好的例子。现在,池和其他应用程序线程之间共享五个CPU。然后,一到七个CPU变为空
..
在JavaFX中,我有一个Controller类,它从FXML文件中提取控制组件,并具有作用于组件的方法,在这里用标签显示: public class ViewController { @FXML private Label labelStatus; public void updateStatusLabel(String label){ labelStatus.setText
..