我想我一个关于java线程的问题

假如有T1,T2,T3三个线程
T1,T2在等待状态(wait),现在T3想唤醒T2,不管T1,怎么做,怎么用notify
T1,T2在睡眠状态(sleep),现在想用T3打断T2(interrupt),我该怎么使用interrupt

在线等,谢谢大神们

1个回答

进程还是线程?是一个问题!
进程还是线程?是一个问题!
如何停止一个Java线程
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

notify是会唤醒所有的此对象的wait线程的,但ReentrantLock,ReadLock,WriteLock来和Condition好像有人说可以实现效果,这里有代码,你可
以试下http://blog.csdn.net/hudashi/article/details/7001070

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于java线程的一个问题
最近在写一个程序.其中就遇到了这样一个问题.我希望实现两个或多个线程,而这些线程的顺序是rnrnThread[Thread-2,5,main] rn----a---- rnThread[Thread-3,5,main] rn----a---- rnrn上面的顺序是我所希望的...但往往会是这样的结果: rnThread[Thread-2,5,main] rnThread[Thread-3,5,main] rn----a---- rn----a---- rn因此会使我的程序出现错误.我知道这是因为线程的原因造成的 rn我只是想看那们前辈有没有什么好的方法,能够解决这样的问题rnrn以下是实例代码rnrnrn代码rnclass a rn rn public synchronized void b() rn rn System.out.println("----a----"); rn rn class c extends Thread rn rn public void run() rn rn System.out.println(this); rn b() rn rn rn rn
我想我惨了
我不知道自己该怎么才能说出口,最近老在有意无意之间听他说自己没人管着,还单身一人,希望不是我多心,可我真的想让他明白,我们已经不再是以前的我们的,我有男朋友了,而他有一个很在乎他的女孩。rn 是的,那是我的初恋,让我身心俱疲的初恋,曾经在蒙蒙胧胧中我心里装满了他,是他放弃了我,那是一场还没有开始就已经结束了的恋情。rn 我不愿意再留恋过往。其实我们也都知道对方不适合自己,在当时我们也只是普通朋友而已。rn 去年五月份开始,那女孩就一直在追他,到了九月份我们正式决裂,现在已经将近一年的时间了。这一年中他们应该相处得很好才对。rn 从我重回这个办公室以后,我发现事情却不象我想象的那样,那女孩三番五次因为我的缘故发脾气,而他三番五次暗示我他还是单身。不希望他因为我而疏远那女孩,我甚至远远地避开他们。rn 但这样下去也不是办法,我不愿意直接对他说我已经有男朋友了(可能是潜意识里不希望伤害他吧!),可是我也不希望他再这样下去。基于朋友的立场来说,我并不喜欢追他的那个女孩,可是就算不喜欢我也不可能直接对他说,那样会显得我别有用意。rn 我是不是惨了?我该怎么办?
我想我找到问题所在了
sql="select id,title from joke where id="&id&""rnrn这样取得的id和title是唯一的值rnrn是不是就不能rs.MoveNext和rs.MovePrevious了?rnrn只能用rnsql="select id,title from joke where id="&id&"+1"rnrnsql="select id,title from joke where id="&id&"-1"rnrn是这样吗?
我想我是中毒了
我的是me来的,一开电脑进入桌面就死机,当然也有幸运的时候:我开了 网页再死机, 我的主页总改不了, 主页一打开,我的诺顿就说有木马,有病毒,有隔离~~我rn按确定,他又说执行不到~~~现在我的计算机易名了——叫重启机。各位大虾,怎么办啊?rn
我想我不会。
1.在15寸显示器上如何让做出来的界面正好在一个屏幕上显示出来,分任务栏自动隐藏和不自动隐藏情况。rn在17寸显示器上如何让做出来的界面正好在一个屏幕上显示出来,分任务栏自动隐藏和不自动隐藏情况。rn2.在98下开发出来的东西在win2000,xp下是否能正常运行。rnrnrn
我想我的机子中毒了
HELP mern 最近 我发现电脑运行速度越来越慢,最后发现在每个文件夹里都有两个rn 隐藏文件,desktop.ini,folder文件,我想删掉,但是你再进此文件夹,两个文件rn 又出现了,我用杀毒软件也不行,谁可以帮我一下啊
java关于线程的问题
下午没什么事情做,重新回顾了一下关于java里面的线程相关的知识,第二次相比第一次学习,收货的确不少。 好了,言归正传,本次从入门级的开始,希望大家看起来简单易懂,嘿嘿! 什么是线程?我的理解就是线程是一个程序里面不同的执行路径(程序内部的顺序控制流) 进程与线程的区别:(3点) 进程是一个静态的概念 进程里面有一个主线程main()方法 同一时间点上,一个CPU只有一个线程在运行(注
关于java线程的问题
package BOOK;rnrnpublic class ThreadTerminate rn public static void manin(String args[])throws Exceptionrn int i=0;rn Hello h=new Hello();rn Thread t =new Thread(h);rn t.setPriority(Thread.MAX_PRIORITY);rn t.start();rn System.out.println("Please stop");rn h.stopRunning();rn while(i<5)rn System.out.println("Good Morning"+i++);rn rn rnrnrnclass Hello implements Runnablern int i=0;rn private boolean timeToQuit=false;rn public void run()rn while(!timeToQuit)rn System.out.println("Holle"+i++);rn tryrn if(i%2==0)rn Thread.sleep(10);rn catch(Exception e)rn rn rn public void stopRunning()rn timeToQuit=true;rn rnrnrn这是java书上关于一段线程的代码 rn为什么我输入到电脑里可是却无法运行 rn求大神解答
关于Java线程问题
当一个线程的run方法运行完毕后,线程进入死亡状态。 rn死亡状态是指线程从内存清除出去,不符存在了吗? rn线程池中的线程数量是怎么在线程执行Run完毕后保持线程数量不变的?
Java关于线程的问题
在Java线程这章对加锁等同步方式存在不理解,还望大家来帮帮忙!下面两道程序都存在写问题,希望大家解决并解释一下,这样估计我就懂了!rn[code=java]package practice.chapter_11;rn/**rn * rn * 随机产生一个大于10的整数n,再产生n个整数存放在数组中,创建两个线程并发的进行相加,一个线程求数组的前一半数的和s21,rn * 另一个线程求后一半数的和s22,再将两个线程求得的和相加s2,并计算利用双线程求出最终结果花费的时间t2rn *和不用线程直接求n个数的和花费的时间t1及值s1相比较 rn *rn */rnrn/**rn * rn * 测试类rn *rn */rnpublic class AddThread rn public static void addThreadSpentTime(Add add) rn long before = System.nanoTime();// 线程求和开始时间rn AddThread1 at1 = new AddThread1(add);rn AddThread2 at2 = new AddThread2(add);rn new Thread(at1).start();rn new Thread(at2).start();rn long sumAdd = at1.getSum() + at2.getSum();rn long later = System.nanoTime();// 线程求和结束时间rn long spentTime = later - before;rn System.out.println("使用双线程求得和为:" + sumAdd + "花费时间为:" + spentTime + "毫微秒");rn rnrn public static void main(String[] args) rn Add add = new Add();rn add.sumOfInt();rn System.out.println("求得整数从0到" + add.getNumber() + "的结果和为:"rn + add.getSum() + "花费了" + add.getSpentTime() + "毫微秒");rn AddThread.addThreadSpentTime(add);rn rnrnrn/**rn * rn *随机产生一个大于10整数n,在再产生n个大于10整数rn */rnclass Add rn public int[] idata;rn private int n;rn private long sumOfTime = 0;rn private long sum = 0;rnrn // 初始化数组idatarn public Add() rn n = (int) (Math.random() * 10000) + 10;rn idata = new int[n];rn for (int i = 0; i < n; i++) rn idata[i] = (int) (Math.random() * 10000) + 10;rn rn rnrn // 打印产生的整数rn public void printInts() rn for (int i = 0; i < n; i++) rn System.out.println("number" + (i + 1) + ": " + idata[i]);rn rn rnrn //取出求和结果rn public long getSum() rn return sum;rn rnrn // 获取整数的个数rn public int getNumber() rn return n;rn rnrn // 求数组idata[]中整数之和rn public void sumOfInt() rn long before = System.nanoTime();rn for (int i = 0; i < idata.length; i++) rn sum += idata[i];rn rn long later = System.nanoTime();rn sumOfTime = later - before;//统计求和花费时间rn rnrn // 计算n个整数求和所花费时间rn public long getSpentTime() rn return sumOfTime;rn rnrnrn/**rn * rn * AddThread1线程求数组中前一半之和rn *rn */rnclass AddThread1 implements Runnable rnrn private int center = 0;//获取数组中间下标rn public long sumAdd = 0;rn private long spentTime = 0;rn public int[] data;rn // 获取AddThread对象并求出数据的中间位置centerrn public AddThread1(Add add) rn center = add.getNumber() / 2;rn data = new int[center];rn data = add.idata;rn rnrn @Overridern public void run() rn long before = System.nanoTime();rn // 取得求和结果rn for (int i = 0; i < center / 2; i++) rn sumAdd += data[i];rn rn long later = System.nanoTime();//计算花费时间rn spentTime = later - before;rn System.out.println("求得从0到" + (center / 2 - 1) + "的结果和为:" + sumAddrn + "花费了" + spentTime + "毫微秒");rn rnrn // 取得求和结果rn public long getSum() rn return sumAdd;rn rnrn // 取得计算和所花费时间rn public long getSpentTime() rn return spentTime;rn rnrnrn/**rn * rn * AddThread2线程求数组中后一半之和rn *rn */rnclass AddThread2 implements Runnable rnrn private int center = 0;//获取数组中间下标rn public long sumAdd = 0;rn private long spentTime = 0;rn public int[] data;rn rn // 获取AddThread对象并求出数据的中间位置centerrn public AddThread2(Add add) rn center = add.getNumber() / 2;rn data = new int[center];rn data = add.idata;rn rnrn @Overridern public void run() rn long sumAdd = 0;rn long before = System.nanoTime();rn //求和rn for (int i = center / 2; i < center; i++) rn sumAdd += data[i];rn rn long later = System.nanoTime();rn spentTime = later - before;//计算花费时间rn System.out.println("求得从" + (center / 2) + "到" + center + "的结果和为:"rn + sumAdd + "花费了" + spentTime + "毫微秒");rn rnrn // 取得求和结果rn public long getSum() rn return sumAdd;rn rnrn // 取得计算和所花费时间rn public long getSpentTime() rn return spentTime;rn rn[/code]输出结果有误!rnrn[code=java]rnpackage practice.chapter_11;rn/**rn * rn * 题目:随机产生一个大于10的整数n,在产生n个整数,创建两个线程分别进行冒泡排序和快速排序,比较结果rn *rn */rnrn/**rn * rn * 测试类rn *rn */rnpublic class SortThread rn public static void main(String[] args) rn RandomNumber rn = new RandomNumber();rn BubbSortThread bst = new BubbSortThread(rn);rn QuickSortThread qst = new QuickSortThread(rn);rn // bst.run();rn // qst.run();rn new Thread(bst).start();rn new Thread(qst).start();rn rnrnrn/**rn * rn * RandomNumber类随机产生一个大于十的数n,再随机产生n个整数数rn *rn */rnclass RandomNumber rn public int[] idata;rn private int n;rnrn // 初始化数组idatarn public RandomNumber() rn n = (int) (Math.random() * 10) + 11;rn idata = new int[n];rn for (int i = 0; i < n; i++) rn idata[i] = (int) (Math.random() * 1000);rn rn rnrnrn/**rn * rn * BubbSortThread线程实现冒泡排序为 n个随机数进行排序rn *rn */rnclass BubbSortThread implements Runnable rn private int[] bst;rnrn BubbSortThread(RandomNumber rn) rn bst = new int[rn.idata.length];rn bst = rn.idata;rn rnrn // 冒泡排序rn public void bubbSort() rn synchronized (bst) rn for (int i = 0; i < bst.length; i++) rn for (int j = 0; j < bst.length - i - 1; j++) rn if (bst[j] > bst[j + 1]) rn int mid = bst[j];rn bst[j] = bst[j + 1];rn bst[j + 1] = mid;rn rn rn rn rn rnrn @Overridern public void run() rn // TODO Auto-generated method stubrn bubbSort();rn for (int i = 0; i < bst.length; i++) rn System.out.print(bst[i] + ", ");rn rn System.out.println();rn System.out.println("bobbing Sort完成。");rn rnrnrnrn/**rn * rn * QuickSortThread线程实现快速排序为 n个随机数进行排序rn *rn */rnclass QuickSortThread implements Runnable rn private int[] bst;rnrn QuickSortThread(RandomNumber rn) rn bst = new int[rn.idata.length];rn bst = rn.idata;rn rnrn // 快速排序rn public void quickSort(int data[], int left, int right) rn synchronized (data) rn if (left < right) rn int i = left, j = right;rn int temp = bst[i];rn int n = i;rn while (i < j) rn while (temp < bst[j] && j > i) rn j--;rn rn bst[n] = bst[j];rn n = j;rn while (temp > bst[i] && i < j) rn i++;rn rn bst[n] = bst[i];rn n = i;rn rn bst[i] = temp;rn quickSort(data, left, j - 1);rn quickSort(data, j + 1, right);rn rn rn rnrn @Overridern public void run() rn // TODO Auto-generated method stubrn quickSort(bst, 0, bst.length - 1);rn for (int i = 0; i < bst.length; i++) rn System.out.print(bst[i] + ", ");rn rn System.out.println();rn System.out.println("quick sort完成。");rn rnrn[/code]
关于JAVA线程的问题
JAVA中怎么暂停一个线程然后再继续
关于JAVA线程问题
因为之前下载是单线程的,考虑到速度问题就改成多线程了。但是发现线程还没有执行完成文夹流就关闭了,在关闭流前我又对线程的状态进行判断,是否因为方法不对,如下是代码。rn[code=java]rnList threads=new ArrayList();rn for(int j=0;j list=new ArrayList();rn list = exportmemberdao.getAllExportCondMemberist("select "+exportconfig_fieldname.substring(0,exportconfig_fieldname.length()-1)+" from member ".concat(cond).concat(" limit "+j*1000+",1000"));rn Thread thread=new Thread(new WriteExcel(list, workbook, exportconfig_fieldname, titles,"会员信息"+j));rn threads.add(thread);rn thread.start();rn rn rn //所有线程是否执行完毕rn int index=0;rn while(true)rn for (Thread thread : threads) rn if(!thread.isAlive())rn System.out.println("线程类:"+thread.getClass().getClass()+" 状态:"+thread.isAlive());rn index++;rn rn rn if(index==threads.size())rn break;rn rn rn String filename=basePath.concat(IConstants.nameSdf.format(new Date())).concat(".xls");rn FileOutputStream fileOutputStream=new FileOutputStream(new File(filename));rn workbook.write(fileOutputStream);rn fileOutputStream.close();rn[/code]rn最后流关闭后为什么线程中的业务方法还在执行(从控制台中可以看的很明显,我做了输出的)。rn就导致我写的文夹不完整。
关于Java线程的问题
MyThread类中的代码rnclass MyThread implements Runnablern int i = 100;rn public void run()rn while(true)rn synchronized(this)rn System.out.println(Thread.currentThread().getName() + i);rn i--;rn Thread.yield();rn if(i<0)rn break;rn rn rn rnrnrnText类中的代码rnclass Textrn public static void main (String args[])rn MyThread myThread = new MyThread();rn Thread t1 = new Thread(myThread);rn Thread t2 = new Thread(myThread);rn t1.setName("线程A");rn t2.setName("线程B");rn rn t1.start();rn t2.start();rn rnrnrn加了synchronized(this) 即同步锁以后,运行时后面的数字是从100到-1,但线程是a、b有交叉输出才对,rn可我试了n遍,永远都是从A100到A0,最后一个是B-1,求问这是为什么rn[img=https://img-bbs.csdn.net/upload/201508/08/1439049592_114043.png][/img]rn[img=https://img-bbs.csdn.net/upload/201508/08/1439049599_919515.png][/img]
关于Java的线程问题
当一个处于可运行状态的线程正在被CPU运行,当一个高于此优先级的线程从堵塞变为可运行时,是否CPU立即停止当前线程的运行,转而处理刚变为可运行状态的线程
关于java线程的问题!
java调用的线程使系统级的还是用户级的?
java 线程的一个问题
我想做canvas一个图片播放器,图片都单张的能显示出来,现在想让它自己连续播放,主要代码:rnrn if(command.equals("Play")) rn while(true)rn tryrn Thread.sleep(1000); ////////rn rn catch(InterruptedException e1)rn e1.printStackTrace();rn rn findex++; //findex为定位图片的一个变量rn if(findex >= files.length)rn findex = files.length-1;rn this.display(files[findex]); //调用display方法,显示图片rn rn rnrnrnrnpublic void display(File f) rn tryrn BufferedImage bi = ImageIO.read(f);rn mc.setImage(bi);rn frame.setTitle("PictureViewer - [" + f.getName() + "]");rn rn catch(Exception e)rn e.printStackTrace(); rn rn mc.repaint();rn rnrnrnpanint()方法定义在canvas类中,mc为canvas的对象 mc.repaint()语句调用panint()这个功能。rnrn但我运行这个程序时就是不能连续的播放,并且卡在第一张图片上,关都关不掉,求解!!!是不是线程上有什么问题!!!rnrnrn
一个JAVA线程问题
代码如下:(问题在运行结果那里)rn-----------------------------------------------------------------------------------------------------------------------------------rnclass MyThread implements Runnable rn private int ticket = 5;rnrn public void run() rn for (int i = 0; i < 5; ++i) rn //synchronized (this) rn if (ticket > 0) rn try rn //Thread.sleep(500);rn catch (Exception e) rn e.printStackTrace();rn rnrn System.out.println(Thread.currentThread().getName() + "卖票: ticket = " + (ticket--));rn rn //rn rn rnrnrnpublic class Test2 rn public static void main(String[] agrs) rn MyThread mt = new MyThread();rn Thread t1 = new Thread(mt);rn Thread t2 = new Thread(mt);rn Thread t3 = new Thread(mt);rnrn t1.start();rn t2.start();rn t3.start();rn rnrnrn一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一rn运行结果却是:rn------------------------------------------------------------------------------------------------------------------------------------------rnThread-1卖票: ticket = 3rnThread-2卖票: ticket = 5 //怎么5会在3的下面?rnThread-0卖票: ticket = 4rnThread-0卖票: ticket = 2rnThread-1卖票: ticket = 2rnThread-2卖票: ticket = 2rnThread-2卖票: ticket = 1rnThread-1卖票: ticket = 1rnThread-0卖票: ticket = 0
Java一个线程的问题
import java.io.*;rnrnpublic class mailsvrrnrnrn private static String s_ConSign = ":";rnrnrn private static String SYS_INSTRUCTION_QUIT = "QUIT";rn private static String SYS_INSTRUCTION_EXIT = "EXIT";rn private static String SYS_INSTRUCTION_HELP = "HELP";rn private static String SYS_INSTRUCTION_START = "START";rnrn private static String SYS_ERROR_COMMAND = "Invalid Command";rnrnrn public static void main(String[] args)rn rn DataInputStream conStream=rn new DataInputStream (rn new BufferedInputStreamrn ( System.in ) );rnrn String s_Inbuf="";rnrn boolean b_Quit=false;rnrn Thread threadMail;rnrn threadMail=new Thread(new clsmail(),"test Thread");rnrn tryrn rn while(!b_Quit)rn rn System.out.print(s_ConSign);rn s_Inbuf=conStream.readLine();rn if (s_Inbuf.equalsIgnoreCase(SYS_INSTRUCTION_QUIT))rn rn clsmail.b_run=false;rn b_Quit=true;rn rn else if(s_Inbuf.equalsIgnoreCase(SYS_INSTRUCTION_EXIT))rn rn clsmail.b_run=false;rn b_Quit=true;rn rn else if(s_Inbuf.equalsIgnoreCase(SYS_INSTRUCTION_START))rn // do start operationrn rnrn threadMail.start();rn rnrn rn rn catch( IOException E)rn rn E.printStackTrace();rn rnrn return;rn rnrnrnclass clsmail implements Runnablernrn public static boolean b_run;rnrnrn public clsmail()rn rn tryrn rn b_run=true;rn rn catch(Exception E)rn rn E.printStackTrace();rn rn rn rnrnrn public void run()rn rnrn int i=0;rn while(b_run)rn rn tryrn rn/******************************************rn*******************************************rnif i add rn System.out.println("yeah");rnin here ,this program willrnexit normally!rnbut if i don't,this program will trap inrndead cycle!rnwhat's wrong with my program!rnplease help me,thanks lot!rn******************************************rn*****************************************/ rn i++;rnrnrn rn catch(Exception E)rn rn E.printStackTrace();rn rn rn System.out.println("I ma exit");rn rnrnrnrnprogram list above is mine,but when i run it in sun jdk1.2rnenviroment,it will not finished normally!rnrnmy step list below:rn(console):startrn(console):quitrnjust at when i typed "quit",this program will trap in dead cycle!rnwhat's wrong!!rnthanks very much!
一个关于线程的问题!
当在同步方法内 调用wait()方法时,会让当前线程进入等待池,去竞争锁。现在我想获得“[color=#FF0000]等待池中线程的个数[/color]”,该怎么做?向各位高手求教了!!!!rn
一个关于线程的问题
在程序运行的时候创建了一个线程,代码如下:rnerr = pthread_create(&Thread, NULL, HandlerFunction, Comp);rnerr的值为0,说明创建成功。rnHandlerFunction是该线程的起始函数,但是没有调到这个函数,也就是说没有进入到rnHandlerFunction函数中去,不知道为什么?是不是还需要做一些其他的工作?rn请哪位高手指点一下,谢谢!!!
关于一个线程的问题????????
我在CMyDoc下有一个函数,调用的类和子函数都很多,整个搬家很难rn我想有没有会的朋友教我一下,(我想用开启线程的方法来实现这个函数的功能)
关于线程的一个问题
GetNewTask函数会调用GetNewTask(Id)//其中Id是一个类的成员rnrnThread workUnitId_1_Thread = new Thread(new ThreadStart(this.GetNewTask));rnworkUnitId_1_Thread.Start();rnThread workUnitId_2_Thread = new Thread(new ThreadStart(this.GetNewTask));rnworkUnitId_2_Thread.Start();rnrn这两个线程在同一事件中被调用,会出现问题吗?
关于线程的一个问题 ---->>>>>
我的线程函数中调用了CDlg的成员函数B,B中有语句UpdateData(FALSE),但是会出错...rn为什么??rn那么我怎样才能使得CDlg上的控件值更新显示......??rnCDlg* pDlg;rnBOOL CDlg::OnInitDialog()rn ....rn pDlg = this;rn .....rnrnvoid ThreadFunc()rnrn pDlg->B();//调用CDlg成员函数Brnrnvoid CDlg::A()rnrn DWORD ID;rn m_hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadFunc,NULL,0,&ID);rn //创建线程调用全局函数ThreadFunc()rnrnvoid CDlg::B()rnrn UpdateData(FALSE);//执行这一句会出错.是否线程调用的函数中无法Update??rn
关于线程的一个问题。
class ThreadIO extends Thread rn int data = -1; rn rn ThreadIO() rn WithThread.showElapsedTime("ThreadIO created"); rn rn public void run() rn WithThread.showElapsedTime("ThreadIO starts"); rn try rn Thread.sleep(10000); rn data = 999; rn WithThread.showElapsedTime("ThreadIO finished"); rn rn catch(Interrupted e) rn rn rn rn rnrn其中 WithThread 是另一个定义的类 rnshowElapsedTime是WithThread 的一个成员函数 rn rn我的问题是不知道再数据成员中为何要定义 data = -1 rn然后在覆写run()时重新给data = 999 rn看注释说时表明 data = 999时表示数据准备完毕 rn rn不明白具体时什么意思 rn能不能具体解释一下data这个数据成员的具体作用啊? rn
关于一个线程的问题
我写了一个SOCKET多线程程序,服务器A从即作为客户端有是服务端rn服务端主要接受用户的请求,然后把用户的请求经过处理在发rn到另外一台服务器B。rnrn主程序结构如下rnmain()rnrn与B服务建立连接rnrn监听客户端请求,rn如果有请求pthread_create创建线程处理rnrnrn线程处理程序如下:rndoit()rnrn读客户端的发送过来的数据,rn业务处理rn发送到B服务器rnrnrn如果在线程处理过程中发送到B服务器由于与B服务器连接上或其他原因失败,rn需要重新与B服务器建立连接,然后重新发送,这怎么解决重新连接和重新rn发送?如果我在doit()中重新连接,那么其他线程还是不能得到连接的rnSOCKFD,其他现成还是不能发送
关于线程的一个问题:)
class threaddemorn rn public static void main(String args[])rn rn rn new newthread();rn tryrn for(int n=5;n>0;n--)rn rn System.out.println("main"+n);rn rn Thread.sleep(10000);rn rn rn catch(InterruptedException e)rn rn System.out.println("main interupted");rn rn System.out.println("main thread exiting");rn rn rn rn class newthread implements Runnablern rn Thread t;rn newthread()rn rn t=new Thread(this,"demothread");rn System.out.println("child thread ;");rn t.start();rn rn public void run()rn rn tryrn for(int n=5;n>0;n--)rn rn System.out.println("child;"+n);rn Thread.sleep(5000);rn rn rn catch(InterruptedException e)rn rn System.out.println("child interupted");rn rn System.out.println("child exiting");rn rn rnrn1。为什么主线程没有调用start()方法也可以运行?rn2。new newthread();是什么意思?是不是调用此函数;还是分配空间?rn3。主线程中的Thread.sleep(10000)可以吗?要不要引用一个对象 如:Thread t = thread.currentThread();
一个关于线程的问题。
怎么样可以将一个窗体放入线程?最好有代码。谢谢啦。
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数