草庐IT

java - 将数据发送到特定线程

我希望能够创建多个线程并根据主程序接收到的数据将数据发送到特定线程。基本上我正在向接收程序发送一个包含数字的数据包。该编号用于确定它要与哪个线程通信。我怎样才能将该数据包发送到具有相同编号的线程?示例:存在线程1、2、3、4和5。我的主程序收到一个编号为3的数据包。我想将该数据包发送到线程3。我怎样才能做到这一点? 最佳答案 为每个线程创建一个队列,并让每个线程监听该队列。然后您的主线程可以将数据(或“消息”)放入每个队列。您只需确保您选择的队列结构对于并发访问是安全的(线程安全的)。类似LinkedBlockingQueue的东西

java - 异常在线程 "main"java.lang.UnsatisfiedLinkError : no jpcap in java. library.path

我正在使用netbeanside并尝试使用jpcap库捕获数据包。我的程序在突然出现这个错误之前可以正常运行Exceptioninthread"main"java.lang.UnsatisfiedLinkError:nojpcapinjava.library.path正在出现。我也在我的另一台电脑上试过ds,但没有成功。我添加了jpcap库,在安装之前我完全清除了旧版本。已尽一切可能。我遇到了严重的麻烦请帮忙! 最佳答案 将此添加到程序的开头:System.out.println(System.getProperty("java.l

java - 使用 apache poi 读取 xlsx 时主线程中出现 NoSuchMethodError

我的代码是[...]importorg.apache.poi.poifs.filesystem.POIFSFileSystem;importorg.apache.poi.ss.usermodel.Workbook;importorg.apache.poi.xssf.usermodel.XSSFSheet;importorg.apache.poi.xssf.usermodel.XSSFWorkbook;importorg.apache.poi.hssf.usermodel.HSSFCell;importorg.apache.poi.hssf.usermodel.HSSFSheet;imp

Java - 将方法传递给类并在新线程中执行

[检查问题底部的更新]如标题所示,我想编写一个接受方法并在新线程中执行该方法的类。我潜伏在SO周围并想出了类似的东西:importjava.util.concurrent.Callable;publicclassMyExecutorimplementsRunnable{privateCallablemethod;publicMyExecutor(CallablepMethod){this.method=pMethod;}@Overridepublicvoidrun(){try{//startanewThread,thenmethod.call();}catch(Exceptione){

java - 线程内线程的优先级

假设您有一个启动两个线程a和b的程序,并且b启动了另外十个线程。a获得了一半的可用“注意力”,而b及其线程共享另一半,还是它们均等?如果默认答案是后者,你怎么能实现前者呢?谢谢! 最佳答案 关于这个主题有很多不错的文档。其中之一是this.创建Java线程时,它会从创建它的线程继承其优先级。您还可以在线程创建后随时使用setPriority()修改线程的优先级。方法。线程优先级是介于MIN_PRIORITY之间的整数。和MAX_PRIORITY(Thread类中定义的常量)。整数越大,优先级越高。在任何给定时间,当多个线程准备好执行

java - 创建一个新线程是否有刷新缓存的副作用?

我想知道在Java中创建新线程是否会触发缓存刷新。假设我按以下顺序做这样的事情:线程运行并设置变量X。线程创建一个新线程。新线程访问X。我的问题是:新线程是否在创建时或开始执行时保证看到旧线程在步骤1中对X所做的更新?我明白,如果旧线程将来更改了X的值,则不能保证新线程会看到这些更改。没关系。我只想知道新线程在启动时是否会看到正确的值而不需要显式同步。当我最初决定研究这个主题时,我以为简单的谷歌搜索会立即揭示答案,但出于某种原因,我找不到任何解决这个问题的结果。 最佳答案 是的,是的。在Java中,有一种“先于发生”的关系,它指定了

java - 将 Activiti 任务从旧流程迁移到新流程

我有一个用于某些业务流程的Activiti项目。问题是关于迁移的。现有流程有一些未完成的任务。我想通过添加新步骤来修改现有流程。现在,当我创建一个新任务时,这个新任务将根据更新后的流程进行处理。未完成的任务将按旧流程处理。让我们来看下面的例子:https://spring.io/blog/2015/03/08/getting-started-with-activiti-and-spring-boot在此示例中,请考虑以下行:taskVariables.put("telephoneInterviewOutcome",true);假设我有一些业务逻辑代码,我在其中检查此变量的值,例如:if

java - 当一个线程完成后,如何通知主线程?

我使用FTP原始命令将文件上传到FTP服务器,我在代码中启动了一个新线程通过套接字发送文件。当新启动的线程完成发送文件时,我想向控制台输出一些消息,如何确保线程已完成工作?这是我的代码:TinyFTPClientftp=newTinyFTPClient(host,port,user,pswd);ftp.execute("TYPEA");StringpasvReturn=ftp.execute("PASV");StringpasvHost=TinyFTPClient.parseAddress(pasvReturn);intpasvPort=TinyFTPClient.parsePort(

java - 是否可以中断 ExecutorService 的特定线程?

如果我有一个ExecutorService并向其提供Runnable任务,我可以选择一个并中断它吗?我知道我可以取消返回的Future(也提到了Here:how-to-interrupt-executors-thread),但是我怎样才能引发InterruptedException。Cancel似乎没有这样做(尽管它应该通过查看源代码来实现,也许OSX实现不同)。至少这个片段不会打印“它!”也许我误解了什么,不是自定义可运行程序导致异常?publicclassITTest{staticclassSth{publicvoiduseless()throwsInterruptedExcept

java - 执行两个线程,一个等待另一个,而主线程继续

如何启动两个线程,其中线程1首先执行,线程2在线程1结束时启动,而主方法线程可以继续其工作而无需锁定其他两个线程?我已经尝试过join()但是它需要从必须等待另一个的线程调用,没有办法做像thread2.join(thread1);这样的事情。如果我在main()中调用连接,我因此有效地停止了主线程的执行,而不仅仅是线程2。因此我尝试使用ExecutorService但同样的问题。importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;importjava.util.concurre