草庐IT

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

- [uiapplication委托]必须仅从主线程调用

这种警告导致了一个严重的问题,因为我真的无法使用Xcode9beta2在主线程外部的代表。我还认为,只能从主线程中召集代表,不是吗?那么,为什么这会导致该应用现在崩溃呢?看答案只需这样的主线程。Objective-Cdispatch_async(dispatch_get_main_queue(),^{[[UIApplicationdelegate]fooBar];});迅速DispatchQueue.main.async{YourUIControlMethod()}像这样接触您的应用程序委托,这暗示着您的架构可以使用一些清理。您可以从所需的任何线程中调用代表。您只需要确保自己在Uikit的主线

Java:为什么主线程没有进展?

我在使用多线程Java程序时遇到了一些问题,并将其提炼成一个非常简单的示例-我的困惑仍然不少!下面显示的示例程序。那么这是做什么的(或打算做什么)?好吧,main()函数从一个简单的线程开始,它基于一个静态的内部类Runnable。此Runnable包含两个嵌套循环,对局部变量“z”进行简单计算,总共进行10^12次迭代(10^6*10^6),然后打印出结果并退出。生成此工作线程后,主线程进入其自身的循环,在控制台中打印字符串“Z”,然后hibernate(使用Thread.sleep())1秒,然后一遍又一遍地重复此过程。所以运行这个程序,我希望它在计算线程执行它的工作时每1秒打印一

Java 9 HttpClient 挂起

我正在试验来自jdk9-ea+171的HTTP/2客户端。代码取自thisexample:HttpClientclient=HttpClient.newHttpClient();HttpRequestrequest=HttpRequest.newBuilder().uri(newURI("https://www.google.com/")).build();HttpResponseresponse=client.send(request,HttpResponse.BodyHandler.asString());但是客户端永远卡在最后一行。请指教如何修复它?调试显示它在方法waitUnt

java - 主线程的 sleep 抛出 InterruptedException

我有生成新线程的主执行线程。在main()的主执行线程中,我调用了Thread.sleep()。我什么时候会收到类型为InterruptedException的未处理的异常?。我不确定为什么会收到这个。我认为这是因为我需要对主线程的引用,所以我继续通过Thread.currentThread()对其进行引用。这不是让线程hibernate的方法吗?我需要做的是让主线程等待/sleep/延迟,直到它再次需要工作。 最佳答案 您看到的是一个编译错误,因为您没有正确处理已检查的异常(在本例中为InterruptedException)。处

java线程和主线程

让主线程等待所有线程完成的最佳方法是什么?for(inti=0;i 最佳答案 创建一个列表并等待所有。Listthreads=newArrayList();for(inti=0;i然而,使用ExecutorService可能是处理线程池的一种更优雅的方式。ExecutorServicees=Executors.newCachedThreadPool();for(inti=0;i 关于java线程和主线程,我们在StackOverflow上找到一个类似的问题:

Java JNI : Creating a Swing Window using JNI from C

我正在使用JNI调用一个静态java方法,该方法又创建一个SwingJFrame并显示它。代码相当简单,Java代码独立运行(即javaStartAWT做它应该做的事),而当使用JNI从C调用时,进程挂起。我在MacOSX10.8MountainLion上使用JDK1.7.0_09。这是我用来调用静态方法的C代码:JavaVM*jvm;JNIEnv*env=create_vm(&jvm);jclassclass=(*env)->FindClass(env,"StartAWT");jmethodIDmethod=(*env)->GetStaticMethodID(env,class,"r

c++ - 在 C++ for Windows 中挂起和恢复主线程

我需要能够在WindowsC++应用程序中挂起和恢复主线程。我用过handle=GetCurrentThread();SuspendThread(handle);然后应该在哪里恢复ResumeThread(handle);虽然暂停有效,但恢复无效。我有其他线程挂起和恢复没有问题,是否与主线程有什么不同。我已经在C#和Java中完成了很多线程工作,但这是我第一次在C++中完成,我发现它有很大的不同。 最佳答案 您是否在另一个线程中使用从GetCurrentThread()获得的“句柄”值?如果是这样,那是一个伪值。要获得真正的线程句柄

c++ - 由于后台线程上的事件,在 ui 线程上执行方法

我有一个正在轮询服务器的后台线程。当有数据时,我想在UI线程上处理数据。如果我存储主窗口的hwnd。如何让特定方法staticvoidDataHandler(void*data)在UI线程上执行?我认为创建一个传递hwnd和函数指针的计时器会起作用。但是有更好的方法吗?我可以使用PostMessage以某种方式调用数据处理程序吗?此外,我没有编写UI代码,因此我无法修改消息循环中的任何内容。 最佳答案 我最常使用两种主要方法在线程之间进行通信。1)PostMessage()创建自定义Windows消息,ala:#defineWM_Y