草庐IT

主线程

全部标签

php - 将参数从主线程传递到新线程

在PHP中,如何使用扩展pthreads将参数从主线程传递到新线程?类似于此的内容HowcanIpassaparametertoaJavaThread?仅在PHP中。 最佳答案 从这段代码开始:http://www.php.net/manual/en/thread.start.phpdata="something";//PasssomethingtotheThreadbeforeyouactuallystartit.var_dump($my->start());?> 关于php-将参数从

java - 从Java中的Runnable线程调用主线程

我已经实现了一个Runnable接口(interface)来加载图像图block,我想从这个辅助线程调用主线程来显示图block。谁能告诉我如何从Java中的可运行接口(interface)线程调用主线程。谢谢。 最佳答案 而不是Runnable你可以使用Callable>它返回一组加载的图像。将这个可调用任务提交给执行者,得到Future>并等待加载线程完成其工作。例如:Future>future=Executors.newSingleThreadExecutor().submit(newCallable>(){@Override

java - 为什么 ForkJoinPool::invoke() 会阻塞主线程?

免责声明:这是我第一次使用Java的Fork-Join框架,所以我不能100%确定我是否正确使用了它。Java也不是我的主要编程语言,所以这也可能是相关的。给定以下SSCCE:importjava.util.Arrays;importjava.util.Timer;importjava.util.TimerTask;importjava.util.concurrent.ForkJoinPool;importjava.util.concurrent.ForkJoinTask;importjava.util.concurrent.RecursiveAction;classForkCalcu

Java - 切换回主线程?

如何在出现异常时从不同的线程切换回主线程。当在子线程上引发异常时,我希望将通知发送到主线程并从主线程执行一个方法。我该怎么做?谢谢。附加信息我正在从我的主要方法中调用一个方法,并在经过一些计算和更改后在那里启动一个新线程Threadthread=newThread(){@Overridepublicvoidrun(){.....}}thread.start(); 最佳答案 当子线程出现异常时,主线程要干什么?它必须等待子线程中的任何错误。你可以建立一个UncaughtExceptionHandler在子线程中,它可以引发主线程正在等

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 - 当一个线程完成后,如何通知主线程?

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

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

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

java - ExecutorService,如何在不阻塞主线程的情况下知道所有线程何时完成?

我有一个多线程实现,我在其中创建一个ExecutorService并提交要执行的任务,我想知道所有线程何时提交都已完成而不阻塞主线程和UI。我试过ExecutorService.awaitTermination()但它会阻塞主线程和UI。我搜索了很多,但我似乎无法找到一种优雅的方式来做到这一点。我目前正在考虑创建另一个线程来计算已完成线程的数量并在它们全部完成时启动一个事件,但这不是一个好方法,我想要一个更好的解决方案! 最佳答案 使用SwingWorker关闭线程池并调用awaitTermination()。这将防止UI阻塞并从您

java - 如何在主线程上围绕 java 中的某些代码设置超时?

我正在寻找与ruby​​中相同的java功能:SystemTimer.timeout_after(30.seconds)做做一点事结束我可以通过fork一个线程然后在一段时间后杀死它来实现这一点,但是有没有更简单的方法? 最佳答案 你不能只使用JavaTimer?Afacilityforthreadstoscheduletasksforfutureexecutioninabackgroundthread.Tasksmaybescheduledforone-timeexecution,orforrepeatedexecutionatr

java - 主线程什么时候死?

问题是使用线程生成1到99之间的随机数。但是这里的问题是我不知道“主线程正在停止”来自哪里?主线程最后不是死了吗?这是示例输出:MainthreadstoppingRandomno=57Randomno=47Randomno=96Randomno=25Randomno=74Randomno=15Randomno=46Randomno=90Randomno=52Randomno=97ThreadthatgeneratesrandomnosisstoppingMythread类:publicclassMyThreadextendsThread{MyThread(){//defaultcon