java如何多线程并发执行?
假如现在有一个list,对于list中的每一项list.get(i)都要执行一个方法check(list.get(i)),如何利用多线程让这些执行并发运行,如果这个che...
假如现在有一个list,对于list中的每一项list.get(i)都要执行一个方法check(list.get(i)),如何利用多线程让这些执行并发运行,如果这个check()方法可能需要占用较长时间,怎么做才能在点击某一个方法执行多线程的时候就可以去处理其他事情,不必等到所有线程都结束才可以进行其他操作。让这些线程在后台自动运行,所有方法都执行完就结束。本人接触java编程不久,还希望各位大侠帮帮忙。
展开
3个回答
展开全部
把对这个list的check行为放到一个多线程里面去做.这样当执行这个方法的时候.程序就会立刻返回,也就可以去处理其他事情了.线程会在后台执行.
不要把每个check都用一个线程,这样的并发问题,是非常复杂.
public void method(){
Thread t = new Thread() {
@Override
public void run() {
//dosomething
//线程在后台执行你想执行的东西
}
};
t.start();
//该方法执行后,立刻返回,让程序得意执行其他操作
}
不要把每个check都用一个线程,这样的并发问题,是非常复杂.
public void method(){
Thread t = new Thread() {
@Override
public void run() {
//dosomething
//线程在后台执行你想执行的东西
}
};
t.start();
//该方法执行后,立刻返回,让程序得意执行其他操作
}
追问
是不是在public void run(){}方法里面执行
for(int j=0;j<list.size;j++){
check(list.get(j))
}啊,如果不是还请告知怎么弄,我就是想实现异步,在调用方法之后可以立即去执行别的操作而不需要等里面东西运行完,至于是不是多线程都不在乎。多谢了
展开全部
是不是在public void run(){}方法里面执行
for(int j=0;j<list.size;j++){
check(list.get(j))
}啊,如果不是还请告知怎么弄,我就是想实现异步,在调用方法之后可以立即去执行别的操作而不需要等里面东西运行完,至于是不是多线程都不在乎。多谢了
就是你说的这样
for(int j=0;j<list.size;j++){
check(list.get(j))
}啊,如果不是还请告知怎么弄,我就是想实现异步,在调用方法之后可以立即去执行别的操作而不需要等里面东西运行完,至于是不是多线程都不在乎。多谢了
就是你说的这样
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果不是必须要等到check返回结果的话,可以采用异步编码的方式,具体思路:在代码中新起一个线程让他执行check的代码即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询