multithreading相关内容

可以安全地在单独的线程中更新BufferedImage的单独区域吗?

我有一个 BufferedImage 实例的集合,一个主图像和一些主图像,它们是通过在main上调用 getSubImage 创建的图片。子图像不重叠。我也在修改子图像,我想把它分成多个线程,每个子图像一个。 从我对 BufferedImage , Raster 和 DataBuffer 工作,这应该是安全的,因为: 每个 BufferedImage 的实例(及其各自的 Writabl ..
发布时间:2019-01-02 21:16:48 Java开发

ReentrantLock用例

我在Java的MultiThreading概念方面很差。 我正在通过ReentrantLock功能和用法。 我得到它更灵活然后同步并添加更多功能。 我可以看到它上面提到的例子,我很好。 我无法弄清楚它在商业中有用的实时场景。 我可以看到最好避免死锁。 有人能提供用例吗?没有ReentrantLock就很难解决这种用例。 或者可以指向某些链接会有所帮助。 ..
发布时间:2019-01-02 21:06:59 Java开发

OpenJDK JVM不会在多个核心上调度线程

当我在随Ubuntu 12.04一起分发的OpenJDK 6 JVM上运行我的多线程Java程序时,所有线程都安排在一个核心上。但是当我从Oracle最新的1.7 JDK在JVM上运行完全相同的程序时,它很好地围绕所有24个可用内核旋转了我的20个线程。 OpenJDK文档解释了Java线程将被分配给本机线程,但是它似乎没有工作。我的OpenJDK安装中是否有配置错误,或者它是否真的不支持多核硬件 ..
发布时间:2019-01-02 21:01:57 Java相关

如何在同一时间(或在关闭时间)启动两个线程

我有一个班级注意和一个班级会议。在类注意中有 ArrayList 名为 noteList 。当创建会议的对象时,它将在 noteList 中注册。 我只想在主类中说明可以同时(或在关闭时)创建 Meeting 的两个对象。我的程序是: 公共类注意{ //某些字段和方法hier public void add (会议m){ notes.add(m); } private s ..
发布时间:2019-01-02 20:56:31 Java开发

在多线程中:如何确定首先停止哪个线程

编写一个名为RaceHorse的类,它扩展了Thread。每个RaceHorse都有一个名称和run()方法,显示名称5000次。编写一个实例化2个RaceHorse对象的Java应用程序。完成的最后一个RaceHorse是失败者。 这就是问题所在。 我已经写了两个类的代码两个运行线程 以下是代码: RaceHorse class RaceHorse扩展Thread { ..
发布时间:2019-01-02 20:49:16 Java开发

我如何使用Java多线程从多个文件中读取?

我想阅读并解析很多文件。由于有超过10000个文件需要解析,我想通过使用线程来加快这个过程。 例如,如果我有5个线程,我希望让它们同时读取一定数量的文件,以便更快地读取和解析过程。这可能吗?通过将其分成线程,我可以获得任何显着的加速吗?如果是这样,我该怎么做? P.S。我并不反对使用外部库。 我正在使用jdk 1.6 解决方案 如果要读取的文件很多,最好的方法是每个文件只 ..
发布时间:2019-01-02 20:46:04 Java开发

如果线程已被中断,Thread.sleep会抛出吗?

给定一个在没有被阻塞时被中断的线程(即没有抛出InterruptedException),该线程在以后尝试睡眠时是否会抛出InterruptedException? 文档确实没有明确说明: InterruptedException - 如果有任何线程中断了当前线程。抛出此异常时,当前线程的中断状态被清除。 解决方案 是的,确实如此。 关于这一点,文档可能并不十分清楚,但这 ..
发布时间:2019-01-02 20:35:42 Java开发

正确使用JavaFX任务执行多线程和线程池

我可以选择让用户从FileChooser提交多个文件,以便由某些代码处理。结果将是用于读取文件的IO,然后是对存储数据的实际繁重计算。允许用户选择多个文件,并且由于文件处理不依赖于所选择的任何其他文件,因此使用线程更容易处理此事。 此外,用户需要有一个按钮列表,每个要取消的任务一个,以及“全部取消”按钮。因此,我必须考虑选择性地或集体地杀死一个或所有任务的能力。 最后一个要求是我不让用 ..
发布时间:2019-01-02 20:34:16 Java开发

多线程游戏 - 更新,渲染以及如何拆分它们

所以,我正在开发一款游戏引擎,并取得了不错的进步。但是,我的引擎是单线程的,将更新和渲染拆分为单独的线程的优点听起来是一个非常好的主意。 我该怎么做?单线程游戏引擎(概念上)很容易制作,你有一个循环,你更新 - >渲染 - >睡眠 - >重复。但是,我想不出一个打破更新和渲染分离的好方法,特别是如果我改变它们的更新速率(比如我经历更新循环25x一秒,并且有60fps用于渲染) - 如果我开始 ..
发布时间:2019-01-02 15:45:41 Java开发

了解多线程

我对于并发运行的线程以及它们对对象的锁定有一个问题。据我所知,调用wait()方法的线程将进入等待列表,并允许来自阻塞列表的另一个线程接管锁定和对象(在同步代码中)。 如果现在对该对象具有锁定的此线程调用notify()方法,则它会唤醒调用wait()的线程并将其移动到阻止列表。 调用notify()方法的线程会发生什么。它是否仍然锁定对象或现在是否在等待名单上? 问候 解决方 ..
发布时间:2019-01-02 15:44:48 Java开发

Java中的LRU缓存实现

我已经看到了以下代码,我认为在addElement方法的实现中有一个无用的while循环。它应该永远不会出现比size + 1更多的元素,因为已经存在写锁定。 那么为什么addElement方法删除元素直到它获得这个条件 true while(concurrentLinkedQueue。 size()> = maxSize) 任何关于此的指针都会很棒。 以下是 ..
发布时间:2019-01-02 15:34:56 Java开发

“同步”真的只是语法糖吗?

我是多线程的新手,我编写了这段代码,通过同时运行线程增量并打印变量来打印数字1-10000。 这是代码我正在使用: package threadtest; 公共类Main { static int i = 0; static Object lock = new Object(); 私有静态类增量器扩展线程{ @Override public void ..
发布时间:2019-01-02 15:31:51 Java开发

一次可以在CPU上运行多少个线程

我想知道同一个应用程序可以在CPU上运行多少个线程? 我同样简单: import java.awt.SystemColor; import java.util.Date; 公共类Threadcall { / ** * @param args命令行参数 * / public static void main( String [] args){ //这里的TO ..
发布时间:2019-01-02 15:29:00 Java开发

使Swing组件同步

我正在阅读 Java Threads 3rd Ed。由奥克斯和黄(O'Reilly 2004)。 他们在整本书中都有一个Swing打字游戏的例子。 他们定义的类主要是 javax.swing.JComponent 的自定义子类。 看起来很像对我来说错误的是他们使用各种同步方法使那些 JComponent 的线程安全。我的印象是Swing组件不应该是线程安全的,而是应该始终从Swing事件 ..
发布时间:2019-01-02 15:26:20 Java开发

Solaris上Java线程与CPU的良好比例是多少?

我有一个固定线程池为15的Java应用程序,该机器Solaris 10 SPARC有16个CPU。添加池大大提高了性能,但我想知道池中是否有太多线程。使用更少的线程可以提高性能,还是Solaris可以很好地完成线程调度。 假设池大量使用15个CPU,那么其他应用程序线程需要各种CPU原因,并发垃圾收集就是一个很好的例子。现在,池和其他应用程序线程之间共享五个CPU。然后,一到七个CPU变为空 ..
发布时间:2019-01-02 15:14:08 Java开发