我想从主Java程序中产生一个Java线程,并且该线程应单独执行而不会干扰主程序。应该是这样的:
一种简单的方法是自己手动生成线程:
public static void main(String[] args) {
Runnable r = new Runnable() {
public void run() {
runYourBackgroundTaskHere();
}
};
new Thread(r).start();
//this line will execute immediately, not waiting for your task to complete
}
另外,如果您需要产生多个线程或需要重复执行,则可以使用更高级别的并发API和执行程序服务:
public static void main(String[] args) {
Runnable r = new Runnable() {
public void run() {
runYourBackgroundTaskHere();
}
};
ExecutorService executor = Executors.newCachedThreadPool();
executor.submit(r);
// this line will execute immediately, not waiting for your task to complete
executor.shutDown(); // tell executor no more work is coming
// this line will also execute without waiting for the task to finish
}
问题内容: 我有一个使用pthread的C程序。 我希望新创建的线程在创建后立即运行。 这背后的原因是我的线程具有用于设置信号处理程序的初始化代码,并且在主线程发送一些信号之前,我必须确保处理程序已就绪。 我尝试过紧随其后的尝试,但没有成功。 我怀疑这会有所不同,但是我在x86_64上运行Linux 3.6。 谢谢 问题答案: 或者,您可以使用屏障,即调用pthread_barrier_wait(
我有一个简单的java程序,它只是一段代码,可以从数据库中读取并根据某些条件修改数据库的内容。现在,我想要的是这个程序应该在启动时自动启动并在后台静默运行,除非有人从任务管理器中杀死它。我以前从未做过这样的事情,也不知道具体该怎么做。有人能帮我解决这个问题吗?谢谢你...
问题内容: 我想在后台线程中运行一些Runnable。我想使用Handler,因为它便于延迟。我的意思是 凡 可运行 应当运行 后台 线程。是否可以创建这样的处理程序?是否在某个地方有“背景” Looper,或者该如何创建? PS我知道如何使用自定义类扩展Thread,但是比处理程序方式需要更多的编码工作。因此,请不要发布其他解决方案或类似的内容 如果Handler能以“干净”的方式做到这一点,我
我想在后台线程中运行一些Runnable。我想使用Handler,因为它方便延迟。我的意思是 runnable应该在后台线程中运行。有可能创造这样的处理器吗?某个地方有没有“背景”Looper或者我怎么才能创建它? 附言:我知道如何使用自定义类扩展Thread来做到这一点,但它需要更多的编码工作,而不是以处理程序的方式进行。因此,请不要发布其他解决方案或类似内容 我只是想知道汉德勒是否能以“干净”
问题内容: 据我了解,默认情况下,Alamofire请求在后台线程中运行。 当我尝试运行此代码时: 在网络呼叫中的所有项目都完成打印之前,UI一直无响应。所以我尝试将GCD与Alamofire结合使用: 而且用户界面仍然没有响应。 我在这里做错什么了吗,还是问题出在Alamofire? 问题答案: 我对默认情况下在后台线程上运行Alamofire的做法有误。默认情况下,它实际上在主队列上运行。我已