在下面的代码中:
class Test {
public static void main(String [] args) {
printAll(args);
}
public static void printAll(String[] lines) {
for(int i=0;i<lines.length;i++){
System.out.println(lines[i]);
Thread.currentThread().sleep(1000);
}
}
}
数组行中的每个字符串都会输出:
调用 Thread.sleep(1000) 方法,将当前正在执行的线程置于等待状态指定时间。根据你的程序,它似乎只有一个单线程程序,因此,当调用线程处于等待状态时,没有其他线程处于运行状态,所以在1000毫秒之后,你的线程将有机会在1000毫秒后执行,但对于其他应用程序来说,没有线程将执行。
因此,据它所知,它将只睡1秒钟。线程。睡眠方法并不完美。请参阅此问题和其他相关问题:
https://stackoverflow.com/a/18737109/4615177
大约1秒的暂停。线程可以提前被唤醒,你会得到一个InterruptedException
,或者线程可以Hibernate1000毫秒,然后不能立即运行,所以它将是1000毫秒微秒(或者更多,如果有更高优先级的线程占用CPU)。
你也说错了。它是Thread.sleep(1000);
,作为一个静态方法,它总是作用于当前线程,你不能让其他线程与它一起睡眠。
我试着运行一个程序,使用线程显示带有数字的乘法、除法、加法和减法表。 但是我希望数字被乘以或相加等。由用户选择。 也就是说,程序应该在用户为每个操作选择一个数字后运行,然后显示结果。
在Flink中,像“平面地图”、“地图”等运算符称为任务,如果我将平面地图的并行度设置为30,那么这个任务有30个子任务。 现在,如果我只有一个插槽,它会在一个插槽中产生多个线程吗?还是每个插槽只有一个线程? Flink会在该插槽中简单地创建30个线程,还是使用类似线程池的东西? 以上不是一个恰当的例子。 假设在作业中我有操作符flatMap和map,它们都有并行度1,我只有一个插槽,这个插槽会创
我有4条线。每个人每x秒打印给定的字母x次。任务是一次启动3个线程,在至少一个前一个线程完成时启动第四个线程。我不知道如何通知最后一个线程在适当的时间运行。
我用的是Netty camel-Netty:jar:2 . 10 . 0 . red hat-60024。下面是我对Netty监听器的配置 荨麻:tcp://10.1.33.204:9001?textline=true 在这里,我看到基于调试日志,Netty只创建一个工作线程,所以传入的消息被阻塞,直到现有的消息被处理。 喜欢: 2014-08-23 12:36:48,394|DEBUG|w I/
在一个android服务中,我创建了用于执行一些后台任务的线程。 我遇到一个情况,线程需要在主线程的消息队列上发布特定任务,例如。 有没有方法获取主线程的并从我的另一个线程向它发布/?
#include <stdio.h> #include <pthread.h> int a = 0; int b = 0; void *thread1_func(void *p_arg) { while (1) { a++; sleep(1); } } void *thread2_fu