如何把一段创建新线程的代码封装成一个类,然后另一个类中引用?如何引用? java线程类executor 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.util.concurrent.Callable;public class MyCallable implements Callable<String>{ private String rtnString; public MyCallable(String rtnString) { this.rtnString = rtnString; } @Override public String call() throws Exception { // TODO Auto-generated method stub return rtnString; }}import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;public class TrdSoap { public static void main(String[] args) { ExecutorService executor = Executors.newFixedThreadPool(3); MyCallable call = new MyCallable("call test!!!"); Future<String> result = executor.submit(call); try { String rtnString = result.get(); System.out.println(rtnString); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ExecutionException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { executor.shutdown(); } }} 谢谢回复,那这个TrdSoap类能不能在另一个类(JAVA文件)里调用?如果可以,如何调用? 本来就不是一个类文件里面的,没看到两个class都是public?import一下就好了。 public abstract class HandlersBase { protected bool isBusy = false; protected bool isFinished = true; protected Task task; public HandlersBase(string showStr,CancellationToken token) { task = Task.Factory.StartNew(Handler,token,token,TaskCreationOptions.LongRunning,TaskScheduler.Default); MessageModel.Message(string.Format("{0} 启动完成!", showStr)); } public bool IsHandlersBusy() { return isBusy; } public abstract bool IsHandlersFinished(); public abstract void Handler(object token); } public class TranslatorHandler : HandlersBase { public TranslatorHandler(int i,CancellationToken token) : base("翻译线程" + i.ToString(),token) { } public override void Handler(object token) { while (!((CancellationToken)token).IsCancellationRequested) { //实现 } } public override bool IsHandlersFinished() { //实现 } } 谢谢,这个是C#的,有没有java的? classloader的问题 java查询数据库优化 各位前辈好!急切请教大家一个GUI的问题!谢谢了100分 高分向高手求学习JAVA代码。【UP有分】 $$$$$$$$$$$$$$$$$$ 菜鸟:关于JList控件的问题. $$$$$$$$$$$$$$$$$$$$$$$$ 请教一个“线程池”的代码布局结构设计问题..... 如何用applet发email,请指教 java虚拟机内存回收 先回收堆,再回收栈???? API.chm为什么找不到instanceof 的用法求大神指教 求推荐内存数据同步框架 自己写了个多线程卖票,对synchronize的疑问 关于界面的编程
import java.util.concurrent.Callable;
public class MyCallable implements Callable<String>{ private String rtnString;
public MyCallable(String rtnString)
{
this.rtnString = rtnString;
}
@Override
public String call() throws Exception {
// TODO Auto-generated method stub
return rtnString;
}}import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class TrdSoap { public static void main(String[] args)
{
ExecutorService executor = Executors.newFixedThreadPool(3);
MyCallable call = new MyCallable("call test!!!");
Future<String> result = executor.submit(call);
try {
String rtnString = result.get();
System.out.println(rtnString);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
executor.shutdown();
}
}
}
public abstract class HandlersBase
{
protected bool isBusy = false;
protected bool isFinished = true;
protected Task task;
public HandlersBase(string showStr,CancellationToken token)
{
task = Task.Factory.StartNew(Handler,token,token,TaskCreationOptions.LongRunning,TaskScheduler.Default);
MessageModel.Message(string.Format("{0} 启动完成!", showStr));
} public bool IsHandlersBusy()
{
return isBusy;
} public abstract bool IsHandlersFinished();
public abstract void Handler(object token);
} public class TranslatorHandler : HandlersBase
{
public TranslatorHandler(int i,CancellationToken token)
: base("翻译线程" + i.ToString(),token)
{ } public override void Handler(object token)
{
while (!((CancellationToken)token).IsCancellationRequested)
{
//实现
}
}
public override bool IsHandlersFinished()
{
//实现
}
}