
java多线程(三)线程的安全问题
1.1. 什么是线程安全如果有多个线程同时运行同一个实现了Runnable接口的类,程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的;反之,则是线程不安全的。1.2. 问题演示为了演示线程安全问题,我们采用多线程模拟多个窗口同时售卖《肥潘大...
2024-01-10
区分Java线程和OS线程?
如何区分正在运行的Java线程和本机线程?在Linux中,每个子进程都有一个父进程,他们说0是所有进程的父进程,所有分叉的Java线程中都会有一个父线程吗?我如何知道哪个Java线程与OS线程相关(如果Java线程派生了本机进程线程)。Java线程和OS线程有任何命名约定吗?可以从另一个Java代码中挂起或...
2024-01-10
Java绿色线程与非绿色线程
我想了解这类线程提供的优势。在哪些环境中,绿色线程比非绿色线程更好?有人说绿色线程更适合多核处理器。任何预期的行为问题。回答:绿色线程是“用户级线程”。它们是由“普通”用户级进程而不是内核调度的。因此,它们可用于在不提供该功能的平台上模拟多线程。特别是在Java上下...
2024-01-10
如何获取Java进程中的线程数
如何查看Java进程中的线程数?回答:调试Java程序的有用工具,它提供了线程数和其他有关线程的信息:jconsole <process-id>...
2024-01-10
Java进程间通信和线程间通信?
Java上下文中的线程和进程之间有什么区别?用Java如何实现进程间通信和线程间通信?请给我指出一些现实生活中的例子。回答:根本的区别是线程位于相同的地址空间中,而进程位于不同的地址空间中。这意味着线程间通信是关于传递对对象的引用以及更改共享对象,而进程是关于传递对象的序列化...
2024-01-10
在Java中使用线程ID终止线程
我想使用它的ID终止线程。使用下面的语句我得到线程。我正在维护的该线程ID Hashtable,但是每当使用要终止该线程时,我就有可能使用线程ID终止。long threadId=Thread.currentThread().getId();我该如何实现?回答:你可以这样//Give you set of ThreadsSet<Thread> setOfThread = Thread.getAllStackTraces().keySet();//Iterate over se...
2024-01-10
如何用Java命名线程池中的线程
我有一个使用该Executor框架的Java应用程序,并且我的代码看起来像这样 protected ScheduledExecutorServicescheduledExecutorService = new ScheduledThreadPoolExecutor(5)我的理解是,JVM会在内部创建5个线程的池。现在,当我在探查器中检查执行情况时,会得到类似的thread-pool2,thread-pool3信息。Some of these thread pools are created by th...
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静态初始化程序线程安全吗?
我正在使用静态代码块来初始化我拥有的注册表中的某些控制器。因此,我的问题是,我可以保证在首次加载该类时,该静态代码块仅被绝对调用一次吗?我知道我不能保证何时将调用此代码块,我猜是在Classloader首次加载时。我意识到我可以在静态代码块中的类上进行同步,但是我猜这实际上是怎么...
2024-01-10
Java从另一个线程在主线程中运行代码
在android服务中,我创建了用于执行某些后台任务的线程。我遇到一种情况,线程需要在主线程的消息队列上发布某些任务,例如a Runnable。有没有办法让Handler主线程和后Message/ Runnable从我的其他线程呢?回答:注意:此答案已引起广泛关注,我需要对其进行更新。自从原始答案发布以来,@ dzeikei的评...
2024-01-10
如何使Java线程等待另一个线程的输出?
我正在用一个应用程序逻辑线程和一个数据库访问线程来制作Java应用程序。他们都坚持为应用程序和都需要的整个生命周期,以在同一时间运行(一个会谈到服务器,一个谈判给用户;当应用程序完全启动,我需要两个人工作)。但是,在启动时,我需要确保最初应用线程等待直到数据库线程准备就绪...
2024-01-10
使用JavaFX Tasks正确执行多线程和线程池
我可以选择让用户从FileChooser提交多个文件,以通过一些代码进行处理。结果将是读取文件的IO,然后是对存储数据的实际大量计算。允许用户选择多个文件,并且由于文件处理不依赖于所选的任何其他文件,因此使我的工作变得更加轻松。此外,用户需要具有按钮列表,每个要取消的任务一个按钮以...
2024-01-10
如何从另一个线程暂停和恢复Java中的线程
我正在用Java Swing编写应用程序。我需要的是一个可以使用图形界面中的按钮停止“阐述”线程的过程。这里有一个简单的项目专注于我的需求import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.JTextArea;/* * To change this template, choose Tools | Templates * and open the template in the editor. *...
2024-01-10
Java中要运行多少个线程?
我有一个绝妙的主意,可以加快生成36个文件所需的时间:使用36个线程!不幸的是,如果我j2ssh使用36个线程/会话启动一个连接(一个连接对象),那么与每次执行每个线程相比,所有事情的滞后性更大。现在,如果我尝试创建36个新连接(36个j2ssh连接对象),则每个线程都有一个单独的服务器连接,...
2024-01-10
java游戏盒子,还能比盒子做得更多
盒子游戏各自有各自的特点,以下是几种游戏盒子的介绍:1、【360游戏盒子】360游戏盒子是360公司官方最新推出的一个提供单机游戏、网络游戏、网页游戏、在线小游戏、棋牌竞技游戏等游戏客户端。三、游窝游戏盒子游窝游戏盒子游窝游戏盒子是目前最新最好的桌面游戏宝库,电脑上的全能游戏机...
2024-01-10
java中为什么要用多线程
我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。当多个线程同时读写同一份共享资源的时候,可能会引起冲突。...
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中的线程安全多态
鉴于以下多态: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事件调度线程说明
我最近开始学习和探索Java中GUI编程的基础知识。经过一段时间的编程,我只完成了后端工作或其他工作,因此,我最接近用户界面的是命令控制台(令人尴尬的是,我知道)。我正在使用Swing,据我所知,通过扩展,我也正在使用AWT。我的问题基于以下代码:java.awt.EventQueue.invokeLater(new Runnable() { p...
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线程使创建过程变得昂贵时,究竟发生了什么?我认为该说法是正确的,但是我只是对JVM中的线程创建机制感兴趣。线程生命周期开销。线程创建和拆除不是免费的。实际开销因平台而异,但是线程创建会花费时间,从而在请求处理中引入延迟,并...
2024-01-10
