例如:我希望用5个线程不停的跑一个业务逻辑,直到容器关闭为止。
业务逻辑ProductService 此业务逻辑用来在线程中跑,所以需要继承Runnable
public class ProductService implements Runnable{
private int id;
public ProductService(int threadId){
this.id = threadId;
}
...
public void run()
{
try
{
logger.info( "延迟60秒 启动发送线程..." );
Thread.sleep( 60000 );
}
catch ( InterruptedException e )
{
e.printStackTrace();
logger.error( "InterruptedException 线程退出..." );
}
while ( true ) //让线程一直跑下去
{
logger.info( "线程 【" + this.id + "】 开始运行 ......" );
try
{
this.send();
}
catch ( Exception e )
{
logger.error( "发送产生异常..." );
StringWriter sw = new StringWriter();
e.printStackTrace( new PrintWriter( sw ) );
logger.error( sw.toString() );
}
}
/**
* 主方法体;
*/
public void send(){
.....
}
...
}
之后需要一个线程生成并调用者,希望容器启动就开始生成这5个线程,所以继承spring的InitializingBean
ProductInvoker
public class ProductInvoker implements InitializingBean{
public void afterPropertiesSet() throws Exception{
for(int i=1;i<=5;i++)
{
ProductService r = new ProductService(i);
Thread _thread = new Thread(r);
_thread.start();
}
}
}
在spring配置文件中注入这个ProductInvoker调用者
分享到:
相关推荐
一个线程从A表读数据放入队列 N个线程从队列中取出...支持大数据量跑批,就是个例子,本来是公司发送促销邮件用的,欢迎提意见和建议。 运行DispatcherMain可以测试,库结构自己可以根据code随便改成父子表关系的就行
用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件(后面有介绍)的要求进行读写操作。用信号量机制分别实现读者优先和写者优先的读者-写者问题。 读者-写者问题的读写操作限制(包括读者优先和写者优先):...
1. 编写程序,使用两个线程,一个队列, 其中一个线程从键盘读取数据,放入到队列中,直到读取的数据是字符串quit则结束,线程的任务就是循环读取数据直到特定的字符串quit。另外一个线程,不断的从队列中读取数据...
用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件(后面介绍)的要求进行读写操作。用信号量机制分别实现读者优先和写者优先问题。 读者-写者问题的读写操作限制(包括读者优先和写者优先) 1) 写-写...
启动两个线程,一个线程打印1~52,另一个线程打印A~Z
用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件的要求进行读写操作。用信号量机制分别实现读者优先和写者优先问题。 1、读者-写者问题的读写操作限制(包括读者优先和写者优先) 1)写-写互斥:不能有...
用这n个线程来表示n个读者或写者。用信号量机制分别实现读者优先和写者优先的读者-写者问题。 读者-写者问题的读写操作限制(包括读者优先和写者优先): 1)写-写互斥:不能有两个写者同时进行写操作。 2)读-写...
在windows的环境下,创建一个控制台进程,此进程创建两个并发线程,一个是读线程,另一个是写线程。这两个线程共享一个数组A,写线程对数组分别进行10次写操作,每次写操作对A的每个元素赋一个相同的值;读线程对数组...
创建两个线程,每个线程的工作是在自己界面的TextField区域中从左到右动态地显示一个字符串;可通过界面按钮启动和中止每个线程的运行。GUI显示界面可参考下图。
用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出
请实现一个多线程程序,分别使用Thread类和Runnable接口求一个整数序列中的最大者,其中,一个线程用来求前n个数的最大者,另一个线程用于更新界面把当前求的最大者显示出来。要求:每隔5秒求一次前n个数的最大者,...
java多线程每个线程挨着打印ABC的4种实现方式,有4个线程t1、t2、t3、t4,t1打印A后t2打印A再t3打印A再t4打印A,然后从新回到t1打印B再t2打印B...t4打印B... 4个线程轮流打印abc... 一个线程可以理解为一个人,打印...
C#线程 在某一时间内,只有N个线程在并发执行,其余都在队列中的实现
读者写者问题实验,创建一个控制台进程。此进程包含n个线程。用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件(后面有介绍)的要求进行读写操作。
基于事件的 NIO 多线程服务器
5.将生命游戏由单线程模式改为多线程模式,使用n个线程并行读取初始pgm文件,把图像分割为n份,分别计算出下一轮的细胞状态,然后重新整合为一个新一代细胞状态图。要求程序无死锁(Deadlock Free),无竞争条件(No...
两个线程,一个线程接收数据一个线程发送数据
在C#中,由于使用线程和调用UI的线程属于两个不同的线程,如果在线程中直接设置UI元素的属性,此时就会出现跨线程错误。 下面介绍两种解决方案 第一种:使用控件自带的Invoke或者BeginInvoke方法。 Task....
单线程与多线程对比 计算量相同,线程数不同 例如,N取1000,000,测试使用1、2、3、4……个线程时所需要的时间。 线程数相同,计算量不同 例如,只考察单线程和双线程的性能对比,N分别取不同的数值。