
java多线程(三)线程的安全问题
1.1. 什么是线程安全如果有多个线程同时运行同一个实现了Runnable接口的类,程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的;反之,则是线程不安全的。1.2. 问题演示为了演示线程安全问题,我们采用多线程模拟多个窗口同时售卖《肥潘大...
2024-01-10
Java如何创建主线程
我是Java技术的新手。我知道Thread在Java中只有两种创建方式扩展线程类实施可运行接口因此,这只是两种创建方法Thread。但是,当我们使用主JVM启动程序时,它启动了一个mainThread。我认为甚至JVM也必须遵循创建主要Thread方法的规则,以创建主线程JVM必须扩展Thread类或实现Runnable。public class MainThreadEx...
2024-01-10
最终静态变量在Java中线程安全吗?
我已经阅读了很多,但是还没有找到确切的答案。我有一堂课,看起来像这样: public class Foo() { private static final HashMap<String, HashMap> sharedData; private final HashMap myRefOfInnerHashMap; static { // time-consuming initialization of sharedData ...
2024-01-10
我的java线程占用多少内存?
有没有办法找出我的Java线程在虚拟机中占用多少内存?例如,使用堆栈跟踪转储或其他某种方式。回答:Java线程将堆用作共享内存。各个线程都有其堆栈(您可以通过-Xss命令行选项设置其大小,默认为512KB),但是所有其他内存(堆)都不属于特定线程,并询问一个特定线程仅使用了多少内存没有...
2024-01-10
无法从run方法中访问对象的属性(方法)!Java多线程
我在ServerConnectionManager中有以下代码:public class ServerConnectionManager implements Runnable { private DatagramPacket receivedPacket; //some more things here public ServerConnectionManager(DatagramPacket receivedPacket){ this.receivedPacket = r...
2024-01-10
CSS中的多个图像交叉淡入淡出-无需(java)脚本
是否可以在CSS中交叉淡入淡出5张图像,而无需使用Java脚本?我发现了一个类似的问题: css3 imagecrossfade没有javascript,但是它只有CSS代码片段;我尝试过,但无法正常工作。我是CSS的新手,所以无法将上一页中提到的CSS链接到以下HTML: <div id= "crossfade"> <img class = "cone" src = "1.png" alt = "png"> <img cla...
2024-01-10
Java多线程与安全发布
在阅读了“ 实践中的Java并发 ”和“ 实践OSGI ”之后,我发现了一个非常有趣的特定主题。安全发布。以下是来自JCIP的内容:为了安全地发布对象,必须同时使对该对象的引用和该对象的状态对其他线程可见。可以通过以下方式安全地发布正确构造的对象:从静态初始化程序初始化对象引用。将对...
2024-01-10
在多个Java线程之间共享数据并获取更新的值
我想创建一个Java应用程序,在这里我们要借助访问令牌对多个用户进行rest调用。我正在为每个用户使用1个线程。我正在使用的访问令牌有效期为1个小时。一旦令牌过期,我将收到401错误,并且必须为所有线程更新令牌,然后继续。我正在考虑使用我已将其设为静态的volatile变量来更新所有线程。我的...
2024-01-10
如何在Java可执行文件.jar中启动多个主程序?
我正在写一个包含多个包的程序。每个软件包都有其自己的主程序,我希望所有人在解释器执行.jar时同时启动。这似乎是一个非常简单的问题,但是当我环顾四周时,似乎人们正在使用蚂蚁(我以前从未使用过)和其他方法。Eclipse中有没有更简单的方法来编译具有多个启动配置的.jar,更好的是,有没...
2024-01-10
Java中的线程安全多态
鉴于以下多态:public class Multiton { private static final Multiton[] instances = new Multiton[...]; private Multiton(...) { //... } public static Multiton getInstance(int which) { if(instances[which] == null) { ...
2024-01-10
Java中要运行多少个线程?
我有一个绝妙的主意,可以加快生成36个文件所需的时间:使用36个线程!不幸的是,如果我j2ssh使用36个线程/会话启动一个连接(一个连接对象),那么与每次执行每个线程相比,所有事情的滞后性更大。现在,如果我尝试创建36个新连接(36个j2ssh连接对象),则每个线程都有一个单独的服务器连接,...
2024-01-10
java中为什么要用多线程
我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。当多个线程同时读写同一份共享资源的时候,可能会引起冲突。...
2024-01-10
解锁另一个线程java拥有的锁
我有一个LockManager来管理多个线程的锁。有时线程是坏男孩,我必须杀死它们并要求LockManager释放所有锁。但是,由于我无法在Java中使用ReentrantLock,因此无法解锁另一个线程拥有的锁。我被迫使用锁(不能使用信号灯,这是作业的重点)。是否有任何Java Lock实现可让我解锁其他线程拥有的锁?到目前...
2024-01-10
获取当前正在Java中运行的所有线程的列表
有什么方法可以获取当前JVM中所有正在运行的线程的列表(包括不是由我的类启动的线程)?是否还可以获取列表中所有线程的Thread和Class对象?我希望能够通过代码做到这一点。回答:要获得一个可迭代的集合:Set<Thread> threadSet = Thread.getAllStackTraces().keySet();...
2024-01-10
Bash中的多线程
我想在我的shell脚本中引入多线程功能。我有一个脚本,read_cfg()使用不同的参数调用该函数。这些函数调用中的每一个都是独立的。可以并行实例化这些函数调用(而不是脚本)。请让我如何实现这一目标。回答:当然,只需&在命令后添加:read_cfg cfgA &read_cfg cfgB &read_cfg cfgC &wait所有这些作业将...
2024-01-10
Java 如何等待多个线程完成?
有什么方法可以简单地等待所有线程处理完成?例如,假设我有:public class DoSomethingInAThread implements Runnable{ public static void main(String[] args) { for (int n=0; n<1000; n++) { Thread t = new Thread(new DoSomethingInAThread()); t.start(); }...
2024-01-10
Java 具有键绑定的线程
我是Java图形和线程的新手,我正在尝试制作一个游戏(特别是Pong)。这个想法是两个人可以在同一个键盘上玩(即,有两个通过不同键控制的拨盘)。目前,两个玩家都无法同时移动其球拍。有针对这个的解决方法吗?单独的线程是答案吗?如果可能的话,我希望这些拨片能够同时(至少在表面上)...
2024-01-10
Java 多线程快速排序或合并排序
如何为Java实现并发的quicksort或mergesort算法?我们在16(虚拟)核的Mac上遇到问题,其中只有一个核(!)使用默认的Java排序算法工作,而且很好的机器没有得到充分利用是不好的。因此,我们编写了自己的代码(我编写了代码),并且确实取得了不错的提速(我编写了多线程快速排序,由于其分区特...
2024-01-10
Java 如何使线程超时
想在一个固定的时间内运行一个线程。如果未在该时间内完成,我想杀死它,抛出一些异常或以某种方式处理它。怎么做到呢?我从该线程 了解到的一种方法是在该线程的run()方法内使用TimerTask。有没有更好的解决方案呢?编辑:添加赏金,因为我需要一个更明确的答案。下面给出的ExecutorService代...
2024-01-10
Java VM可以支持多少个线程?
Java VM可以支持多少个线程?这会因供应商而异吗?通过操作系统?其他因素?回答:这取决于您正在使用的CPU,操作系统,其他正在执行的操作,您正在使用的Java版本以及其他因素。我已经看到Windows服务器在关闭计算机之前具有> 6500个线程。当然,大多数线程没有做任何事情。一旦计算机遇到了大...
2024-01-10
Java 8 JIT线程似乎陷入无限循环
我用Java 8编写了一个服务器应用程序,并使用Java 1.8.0u25运行它。它可以在最初的几个小时内正常工作,但是在收到大约5k至10k请求之后,VM进程的线程使用了其中一个CPU的100%。因此,我尝试jstack让VM进程检查有问题的线程是什么,它显示线程(线程ID为14303 = 0x37df)为“ C2CompilerThread0”:"C2 CompilerThre...
2024-01-10
Java Web应用程序中的线程
我需要创建一个线程来侦听新,已修改或已删除文件的文件路径。我正在使用一个使用Spring 3,Struts 2和Hibernate3的Web应用程序。如果我运行该项目,它将加载包含文本“ Hello World”的index.jsp。问题是当我创建一个Thread()侦听文件路径并将其分配给index.jsp 的java时:<action name="" method="runThread" class="TestThread...
2024-01-10
Java Regex线程安全吗?
我有一个函数,该函数使用Pattern#compile和Matcher来搜索字符串列表中的模式。此函数用于多个线程。每个线程将在Pattern#compile创建线程时传递给的唯一模式。线程和模式的数量是动态的,这意味着我可以Pattern在配置期间添加更多s和线程。synchronize如果使用正则表达式,是否需要在此函数上放一个?Java...
2024-01-10
使用JavaFX Tasks正确执行多线程和线程池
我可以选择让用户从FileChooser提交多个文件,以通过一些代码进行处理。结果将是读取文件的IO,然后是对存储数据的实际大量计算。允许用户选择多个文件,并且由于文件处理不依赖于所选的任何其他文件,因此使我的工作变得更加轻松。此外,用户需要具有按钮列表,每个要取消的任务一个按钮以...
2024-01-10
Java 如何同时启动两个线程
程应在同一瞬间开始。我了解,如果你这样做thread1.start(),则下次执行之前需要花费几毫秒的时间thread2.start()。可能还是不可能?线程应该在同一瞬间开始。我知道,如果你执行thread1.start(),则下次执行thread2.start()需要几毫秒。这是可能的还是不可能的?回答:要完全同时(至少尽可能好)启...
2024-01-10
