请问个java中多线程的问题 [问题点数:50分]

Bbs1
本版专家分:5
结帖率 93.78%
Bbs5
本版专家分:3794
Blank
蓝花 2019年6月 Java大版内专家分月排行榜第三
Bbs7
本版专家分:24201
版主
Blank
红花 2013年7月 Java大版内专家分月排行榜第一
Bbs9
本版专家分:68817
Blank
GitHub 绑定GitHub第三方账户获取
Blank
红花 2019年8月 Java大版内专家分月排行榜第一
2019年8月 其他开发语言大版内专家分月排行榜第一
2011年6月 Java大版内专家分月排行榜第一
Blank
黄花 2019年3月 Java大版内专家分月排行榜第二
Blank
蓝花 2019年7月 其他开发语言大版内专家分月排行榜第三
2018年11月 Java大版内专家分月排行榜第三
2012年7月 Java大版内专家分月排行榜第三
2011年11月 Java大版内专家分月排行榜第三
2007年12月 Java大版内专家分月排行榜第三
2007年10月 Java大版内专家分月排行榜第三
Bbs1
本版专家分:5
Bbs5
本版专家分:3844
Blank
蓝花 2019年6月 Java大版内专家分月排行榜第三
Bbs9
本版专家分:68817
Blank
GitHub 绑定GitHub第三方账户获取
Blank
红花 2019年8月 Java大版内专家分月排行榜第一
2019年8月 其他开发语言大版内专家分月排行榜第一
2011年6月 Java大版内专家分月排行榜第一
Blank
黄花 2019年3月 Java大版内专家分月排行榜第二
Blank
蓝花 2019年7月 其他开发语言大版内专家分月排行榜第三
2018年11月 Java大版内专家分月排行榜第三
2012年7月 Java大版内专家分月排行榜第三
2011年11月 Java大版内专家分月排行榜第三
2007年12月 Java大版内专家分月排行榜第三
2007年10月 Java大版内专家分月排行榜第三
Bbs5
本版专家分:3844
Blank
蓝花 2019年6月 Java大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs1
本版专家分:5
问个多线程问题:)
想实现的功能如下:这是个客户端,想通过socket接收到服务器端发送的字符串,并将字符串在客户端右下角以弹出窗口的形式弹出。以下是代码:rn[code=C#]rn//接收消息rn public void getMessageFromServer()rn rn Thread thread = new Thread(new ThreadStart(getMessage));rn thread.Start();rn rnrn //接收消息方法实体rn private void getMessage()rn rn string hostName = Dns.GetHostName();rn IPHostEntry hostEnty = Dns.GetHostEntry(hostName);rn string hostIPAdress = hostEnty.AddressList[0].ToString();rn IPAddress ip = IPAddress.Parse(hostIPAdress);//得到本机IP地址rn TcpListener listener = new TcpListener(ip, 8600);//使用本机的指定端口进行监听rn //listener.ExclusiveAddressUse = true;rn listener.Start(); // 开始侦听rn while (true)//从程序运行开始,持续监听rn rn //获取一个连接,同步方法,在此处中断 rn listenTcp= listener.AcceptTcpClient();rn RemoteClient wapper = new RemoteClient(listenTcp);rn rn rnrn class RemoteClientrn rn private TcpClient client;rn private NetworkStream streamToClient;rn private const int BufferSize = 8192;rn private byte[] buffer;rn private RequestHandler handler;rn public string result = "";rnrn public void getValue(string str)rn rn this.result = str;rn rnrn public RemoteClient(TcpClient client)rn rn this.client = client;rnrn // 打印连接到的客户端信息rn //Console.WriteLine("\nClient Connected!0 );这句取消注释,在弹出“a“的同时,右下角的窗口就可以出来。。。并且如果此时点掉messagebox对话框,右下角窗口就会卡死。rn以前没接触过<em>多线程</em>,希望大家帮帮忙,谢谢!
问个Vector多线程问题
public void transfer (Vector accounts,int from , int to,int amount )rnrnaccounts.set(from, accounts.get(from)-amount);rnaccounts.set(to, accounts.get(to)-amount);rnrnvector类的get 和set 方法是同步的,为什么一个线程完全可能在家transfer 方法中被告剥夺运行权,于是另一个线程可能在相同的存储位置存入不同的值rn上面的get方法不都在set 方法内吗,怎么会出线覆盖的情况
问个多线程问题
假设我启动3个线程rnfor(int i=0;i<3;i++)rnThread test = new Thread(new ThreadStart(a.start));rnrn public void start()rnrnconsole.write(datetime.now);rnrnrn每个线程都打印当前时间,但是,我需要让3个线程在不同的时间工作,而不是启动线程后全都直接打印时间,我该如何做呢?rn难道要在start方法中,随机sleep x秒?
问个多线程发邮件的问题
一个console应用,单线程<em>多线程</em>发邮件都可以成功发送,但是我在线程函数的开始printf(start),结束printf(end),发现线程是顺序执行的,也就是说第一个线程完全执行完并且退出才开始执行第二个线程,通过输出可以看出在开始执行第一个线程的时候其余的线程已经建立了,而且所有线程的优先级是一样的,请问这是怎么回事?rn
问个关于多线程问题
建立一个类rntypern TFromThread = class(TThread)rn protectedrn FP:Tfrm_printerwait;rn procedure Execute; override;rn procedure Stop;rn end;rnprocedure TFromThread.Execute;rnbeginrn FP:=Tfrm_printerwait.Create(Application);rn FP.ShowModal;rnend;rnrnprocedure TFromThread.Stop;rnbeginrn FP.Close;rn Fp:=nil;rnend;rnrn F:TFromThread;rn其它调用rn F:=TFromThread.Create(true);rn F.Resume;rn //其他工作rn F.Stop;rn F.Terminate;rn F:=nil;rn但是我调用后执行了F。STOP没有把FORM关闭,依旧显示,不知道什么原因。rn我在这里就是想前台显示一个莫态的对话筐,后台作些其他工作。rnrn
问个多线程访问函数的问题
如果<em>多线程</em>同时调用一个函数,而这个函数中是没有全局或静态变量的,但有局部变量,这样是不是不相互影响的。rn我的意思就是说每个线程在同一时刻调用同一函数时,是不是替那些局部变量各自开辟不同的空间,它们之间是没有什么影响的?
新手问个多线程问题
先写个简单的例子:rn[code=<em>java</em>]public class T implements Runnablernrn public void run()rn System.out.println(Thread.currentThread().getName()); rnpublic static void main(String[] args)rn rn T t1 = new T(); rnThread tt = new Thread(t1,"tt");rnThread ttt = new Thread(t1,"ttt");rntt.start();rnttt.start();rn rn[/code]rn这里后面创建线程的时候还可以用rn[code=<em>java</em>]T t1 = new T();rnT t2 = new T(); rnThread tt = new Thread(t1,"tt");rnThread ttt = new Thread(t2,"ttt");rntt.start();rnttt.start();[/code]rnrn那请问这两种方法创建的线程有什么区别呢?
问个C#多线程问题~
[code=C#]rnnamespace WindowsFormsApplication1rnrn public partial class Form1 : Formrn rn public Form1()rn rn InitializeComponent();rn rnrn private void button1_Click(object sender, EventArgs e)rn rn Thread t = new Thread(new ThreadStart(a));rn t.Start();rn rn void a() rn rn new Form2();rn while (true)rn rn Application.DoEvents();rn rn rn rnrnrn[/code]rn[code=C#]rnnamespace WindowsFormsApplication1rnrn public partial class Form2 : Formrn rn public Form2()rn rn InitializeComponent();rn this.Show();rn rnrn private void button1_Click(object sender, EventArgs e)rn rn openFileDialog1.ShowDialog();rn rnrn private void Form2_Load(object sender, EventArgs e)rn rnrn rn rnrn[/code]rnrn ,就是,在form1里面创建一个<em>多线程</em>来 new form2(), 然后在form2的钩造方法里用this.show显示出form2, 然后再在form2里面openFileDialog1.ShowDialog(); <em>问题</em>就是openFileDialog1 show不出来, 有异常说rnrn"在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。"rnrn请问这种情况该如何解决??rnrn while (true)rn rn Application.DoEvents();rn rn如果不加这一段, form2 show出来过后马上就消失了. 问了论坛上的朋友解释说 不用这个,线程函数跑完了,当前线程就自动结束了,所以必须用这个.
问个Java多线程问题,麻烦大家了
[code=Jav]rnpublic class Example1 rn public static void main(String args[])rn rn TestThread2 testthread2 = new TestThread2();rn TestThread1 testthread = new TestThread1();rn rn new Thread(testthread2).start();rn new Thread(testthread).start();rn rn rnrnclass TestThread1 implements Runnablernrn public void run()rn rn for (int i = 0; i < 10; i ++)rn rn System.out.println("TestThread1 在运行");rn rn rnrnclass TestThread2 implements Runnablernrn public void run()rn rn for (int i = 0; i < 10; i ++)rn rn System.out.println("TestThread2 在运行");rn rn rnrn[/code]rnrn我写了一段<em>多线程</em>example,可以运行出来和我预期的不一样,以下是我的运行结果rnTestThread2 在运行rnTestThread2 在运行rnTestThread2 在运行rnTestThread2 在运行rnTestThread2 在运行rnTestThread2 在运行rnTestThread2 在运行rnTestThread2 在运行rnTestThread2 在运行rnTestThread2 在运行rnTestThread1 在运行rnTestThread1 在运行rnTestThread1 在运行rnTestThread1 在运行rnTestThread1 在运行rnTestThread1 在运行rnTestThread1 在运行rnTestThread1 在运行rnTestThread1 在运行rnTestThread1 在运行rnrn而且期望的结果是:rnrnTestThread2 在运行rnTestThread1 在运行rn交替出现rn请问我写的地方有什么不对么?rnrn
java新手问个关于多线程问题
请问在多个线程可以看作是同时运行么,实际上应该是有先后的吧。我读一个显示线程和现程组的程序,为什么只要执行一遍rnThread.currentThread.getName(),就可以获得全部的现程呢。。。不是应该只能得到当前的现程么??
java 多线程问题,请教下
最近做个项目遇到个<em>问题</em>,请教下各位?rn项目功能是采集数据,前端大概有100个采集点,采集设备主动发送数据包,每十五分钟一个心跳包,再十五分钟一个数据包,也就是说服务器半小时读取一次数据。服务器现有三个端口,不排除以后增加的可能性。我在服务器端开启多个线程接收数据包,我想针对每一个采集设备开一个线程,非一个数据包一个线程,我写了段代码,不知道可对,麻烦帮我看看rn线程启动,args用来保存端口号,默认采用8001rn rn[code=<em>java</em>]//处理端口号冲突rn if (args.length < 1 ) rn ss = new ServerSocket(8001);rn else rn ss = new ServerSocket(Integer.parseInt(args[0]));rn rn boolean bRunning = true;rn while(bRunning)rn Socket s= ss.accept();rn new Thread(new serverStart(s)).start();rn [/code]rn线程启动:rnrn [code=<em>java</em>]private Socket s = null;rn InputStream ips;rn OutputStream ops;rn private volatile boolean running = true; rn public serverStart(Socket s) throws IOException rn this.s = s; rn ips = s.getInputStream(); rn ops = s.getOutputStream();rn rn rn public void run() rn while(running) rn try rn Message m = read(); rn System.out.println("收到信息"); rn catch (Exception e) rn e.printStackTrace(); rn rn rn try rn if(s!=null)s.close(); rn catch (IOException e) rn rn [/code]
请教个Java多线程问题
有个需求是这样的, 我本地的工程需要调用外部的一个webservicernrn但是外部的每次只能接受10个查询.rnrn那我现在加入有100个需要查询, 我打算用<em>多线程</em>做, 比如这里我就跑10个线程去发送请求,rnrn我想问的是, 我怎么管理这10个请求呢? 因为我需要等结果全部返回了, 组织好结构了再继续往下走rnrn请大家提供点思路, 谢谢了
java多线程问题
<em>java</em>中多个线程它们之间是如何分配CPU的
问个nasm中的问题
我想用nasm来改写linux 0.11中的bootsect.s,我只写了一点就出<em>问题</em>了,请看:rn;引导程序bootsect.asmrn[BITS 16]rn[ORG 0x07C00]rnrnjmp startrn rnBOOTSEG EQU 0x07c0 rnINITSEG EQU 0x9000 rn rnstart:rn;把启动时的引导程序从0x07c0:0复制到0x9000:0,共512个字节rn mov ax,BOOTSEGrn mov ds,axrn mov ax,INITSEGrn mov es,axrn mov cx,20rn sub si,si rn sub di,dirn reprn movsw rn noprn nop rn jmp INITSEG:go ;跳转到0x9000:go的位置rngo: mov ax,csrn mov ds,axrn mov es,axrn mov ss,axrn mov sp,0xFF00rnrn noprn noprn call DispStrrn jmp $rnDispStr:rn mov ax,BootMessagern mov bp,axrn mov cx,16rn mov ax,01301hrn mov bx,000chrn mov dl,0rn int 10hrn retrnrnBootMessage:db"Hello, OS world!"rn rntimes 510-($-$$) db 0rndw 0xaa55rn我是在linux下用bochs来模拟的,我编译nasm bootsect.asm -o bootsect.bin,然后用bochs来启动,rn我调式时,发现jmp INITSEG:go 就出<em>问题</em>了,好像偏移地址不对了,并且mov ax,BootMessage的rn偏移地址也不对,它们都不是从0开始计算的,请问有什么办法解决呢?
java中的多线程问题
如果我想起一个守护进程,专门用来接受外部调用,当有外部调用发生时,由这个守护进程去调用子线程,调用子线程后,守护进程又进入等待状态,等待接收下一次的调用,请问应该怎样重载守护进程的run()方法?rn请最好给出代码表示.
问个LZW中的问题
如果在LZW中,用11个bit表示编码,比如rn分别用11111111111与00000000001表示rn两个字符串,那么在压缩时,这两个字符串rn是用4个字节表示呢(每个字符串都用2个字节rn表示),还是把这两个11位的bit再进行整合成rn3个字节的?如果是再整合,那么是怎么样整合,rn是高字节与高字节整合还是高字节与低字节整合?
问个多线程
listbox中有N项,rnrnrn我要产生20个线程对每一顶进行访问,应该用互斥避免冲突rnrn就想问,怎么分配这20个线程的工作?他能否智能到比如:第二线程发现第一线程在rn访问第一项,那第二线程自动访问下一项,同理,,rn就想线程各做各的。能否实现这种效果?
问个java中import的问题
<em>问个</em>import的<em>问题</em> 为什么上面的创建一个对象比下面的要省内存资源?rn[code=<em>java</em>]rnimport <em>java</em>.util.Date;rnrnpublic class Test rn Date a;rn Date b;rn // setter getterrnrn[/code]rnrn[code=<em>java</em>]rnpublic class Test rn <em>java</em>.util.Date a;rn <em>java</em>.util.Date b;rn // setter getterrnrn[/code]rnrn
问个关于多线程事件响应的问题
主线程因为有一个大循环执行,所以我把显示状态的代码放到一个线程中,该线程带有界面,当按上面的取消按钮时就改变主线程的变量值而使循环结束。但是线程启动以后我却按不动上面的按钮,但是可以执行拖动窗口、改变窗口大小等操作,就是不能触发按钮事件,这是为什么?
问个多线程生产者与消费者的问题
两个线程,生产者和消费者rn生产者生产的速度和消费者的消费速度不同,那么生产的缓存区放几个生产单位比较好呢?rn如果生产者很快,消费者很慢。消费者能否考虑并行性?(不是并发性)rn谢谢各位。
问个简单多线程概念问题
unit Unit1;rnrninterfacernrnusesrn Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,rn Dialogs, StdCtrls, DB, Grids, DBGrids, ADODB, activex;rnrntypern TForm1 = class(TForm)rn Button1: TButton;rn Button2: TButton;rn procedure Button1Click(Sender: TObject);rn privatern Private declarations rn publicrn Public declarations rn end;rnrn lvThread = class(TThread)rn privatern btn1:tbutton;rn protectedrn publicrn constructor Create(button:tbutton);rn procedure Execute; override;rn end;rnrnvarrn Form1: TForm1;rn lv:lvthread;rnrnimplementationrnrn$R *.dfmrnrn lvThread rnrnconstructor lvThread.Create(button:tbutton);rnbeginrn FreeOnTerminate:=true;rn inherited Create(false);rn btn1:=button;rnend;rnrnprocedure lvThread.Execute;rnbeginrn btn1.Caption:='ok'; rn form1.Button1.Caption:='ok';//这两种用法的差别体现在哪里?rnend;rnrnprocedure TForm1.Button1Click(Sender: TObject);rnbeginrn lv:=lvthread.Create(button1);rnend;rnrnend.rnrn我想知道对于控件,这两种用法到底各自是什么意思,因为如果从方便的角度来讲,线程里面控件多的时候第二种方法很方便,但是既然delphi提供了把控件传进线程的方法,我想它们应该有区别吧。rn我怕程序做大后才发现它们的不同,那时要改n多东西,就太晚了,大家帮帮忙吧rn
弱弱的问个多线程问题
我开了一个工人线程,传入CView类的指针rnrn在线程里调用UpdateAllViews(NULL);rnrn结果在调试时这个函数处报错rnrn是不是不能用啊,为什么?
问个多线程操作变量的问题??
一个容器里面存放数据,需要被查询,后台开个线程往容器里面添加数据,怎么做到同步?rn是个win32 sdk的程序,不知道能不能用mfc的那套东西?rn
问个关于List的多线程问题
对<em>多线程</em>会用一点,但好多都不是太清楚rn我想实现下面的一个简单功能:rn 创建一个类,里面有一个静态的ArrayList,在run中往里面添加元素,再删除掉。rn 在一个主线程中创建这个类的多个实例,最后要求ArrayList是空的rn 我自己写了一个,可是都是出错的,不知道该怎么办。rn 下面是自己写的代码rn----------------------------------rnimport <em>java</em>.util.*;rnimport <em>java</em>.util.concurrent.*;rnrnrnclass ListTest implements Runnablern rn public static int counter=0;rn public final int id=counter++;rn int innerCount=0;rn static List list=Collections.synchronizedList(new ArrayList());rn rn public void run()rn rn synchronized(ListTest.class)rn list.add(toString());rn System.out.println(list.get(0));rn list.remove(toString());rn rn rn rn rn public String toString()rn return "Task "+id+": "+(innerCount++);rn rnrnrnrnrnpublic class SynchronizedCollection rnrn /**rn * @param argsrn * @throws Exception rn */rn public static void main(String[] args) throws Exception rnrn rn ExecutorService exec=Executors.newCachedThreadPool();rn for(int i=0;i);rn rn for(String s:ListTest.list)rn System.out.println(s);rn rn rnrn
小白问个多线程的简单问题
[code=<em>java</em>script]#include rn#include rnrnDWORD WINAPI Fun1proc(rn LPVOID lpParameter // thread datarn);rnusing namespace std;rnrnrnvoid main()rnrn HANDLE hThread;rn hThread = CreateThread(NULL,0,Fun1proc,NULL,0,NULL);rn CloseHandle(hThread);rn cout << "Main thread is running!\n";rnrnrnrnDWORD WINAPI Fun1proc(rn LPVOID lpParameter // thread datarn)rnrn cout << "Thread1 is running!\n";rn return 0;rn[/crn照着教程写的代码,我在本机测试,输出完全乱套了,Main里面的输出和fun1proc里的输出完全混到了一起,请问这是咋回事啊!
问个关于mfc多线程问题
我在界面上放个button,双击的处理函数是,新建一个线程然后用这个线程执行另外的函数。rn大概就是rnvoid CMainFrame::OnConnect()rnrn AfxBeginThread(pfnThreadProc,pParam);rnrn然则这个线程执行函数我在书上看到说只能调用全局函数或者类的静态成员函数,于是我还要定义了一个类A里面定义一个静态成员函数functhread,rn由于这个函数要执行的功能还需要用到其他的一些类B里函数,我想的是我是不是要在我现在这个类A里再写这样rnpublic:rn static B m_B;rn static void functhread();//类写在.h文件中,functhread具体实现的代码写在对应的.cpp文件中rn以供给functhread调用呢。rn假如这样可以,怎么把线程执行函数pfnThreadProc和functhread联系起来呢rn我是菜鸟,刚接触这洗东西,头晕的很 希望大家能指点一下。谢谢了
多线程入门, 问个问题!
在<em>多线程</em>运行 如果在一个单列中的一个方法没有标记syn 。那么如果几个线程同时调到这个方法。会发生什么情况?
高分问个关于多线程问题
以下是个<em>多线程</em>上传文件的代码,其中WaitHandle.WaitAll(events);这句需要在Main函数前把[STAThread]修改成[MTAThread],而在我的程序中使用了webBrowser控件,这个控件要求使用[STAThread]该如何解决这个冲突呢?小弟初来乍到,望请高手指教!rn//<em>多线程</em>备份文件rn public bool mutiThreadUploadFile(string fileName,string SN)rn rn FileInfo fi = new FileInfo(fileName);rn if (fi.Exists)rn rn button5.Enabled = false;//避免连续两次上传rn //初始信号rn ManualResetEvent[] events = new ManualResetEvent[5];rn //分块——分成5块下载rn int nTotalBytes = (int)(fi.Length / 5);rn for (int i = 0; i < 5; i++)rn rn events[i] = new ManualResetEvent(false);rn FileThread thdSub = new FileThread(rn i * nTotalBytes,rn (fi.Length - i * nTotalBytes) > nTotalBytes ? nTotalBytes : (int)(fi.Length - i * nTotalBytes),rn fi.FullName,SN);rn ThreadPool.QueueUserWorkItem(new WaitCallback(thdSub.UploadFile), events[i]);rn rn //等待进程结束rn WaitHandle.WaitAll(events);rn //重置 button 状态rn button5.Enabled = true;rn return true;rn rn elsern return false;rn
没分了~~问个多线程问题~~~
我写了些代码测试一下<em>多线程</em>,如下rnstruct Datarnrn CMy123Dlg* hWnd;rn int i;rn;rnrnUINT TextProc(LPVOID lpParam)rnrn if(lpParam==NULL)rn rn AfxMessageBox("ERROR");rn return 0;rn rn Data *a=(Data*)lpParam;rn CString str;rn str.Format("Thread %d",a->i);rn a->hWnd->m_list.AddString(str);rn return 0;rnrn单击按键就执行线程:rnvoid CMy123Dlg::OnButton1() rnrn // TODO: Add your control notification handler code herern Data* b;rn b=new Data;rn b->hWnd=this;rn int i=10;rn while(i--)rn rn b->i=i;rn AfxBeginThread(TextProc,b);rn rnrn其中m_list是一个ListBox,但结果是0有两个,9却没有,是怎么回事啊~~
新手,问个有关多线程问题.
问一下,如果我启动了两个线程,调用的同一个过程(不是同时),我如何在过程里判断现在是哪个线程在运行它?谢谢.
问个奇弱的多线程问题
我使用递归开线程,每个线程就是执行一个递归函数,当然每个递归函数有可能开启另外一个或者多个同样的递归函数 rnrn第一个<em>问题</em>:没有使用<em>多线程</em>的话,输入的结果都是正常的,现在想在输出的地方加上<em>多线程</em>里面的互斥控制。 rn我用的是CEvent,如下: rn首先 rn//创建一个手动的,初始值为有信号的事件 rnHANDLE Handle_Output = CreateEvent(NULL, TRUE, TRUE, "handle_output"); rnrnvoid func(void* para) rn rn...... rnWaitForSingleObject(Handle_Output, INFINITE); rnResetEvent(Handle_Output); rn...... rnSetEvent(Handle_Output); rn...... rn rnrn然后现在是什么输入都没有,所有线程好像都憋死在输出的那个地方了 rn第二个<em>问题</em>:rn我的活动configuration是debug的,而VC的IDE里面的Project->SEtting->c/C++->code generation->use runtime library在<em>多线程</em>时,只能选multithreaded DLL 才能运行。rn好奇怪啊!vc里面一个是debug的configuration为什么可以选不是debug的dll或者库运行!!!!rn rn大侠,现身吧!!! rn
问个多线程问题:Condictin Variable
Condictin Variable可以理解为是mutex的一种衍生或者说一种应用吗?我想不出其特别的地方!
java多线程死锁问题
这个程序为什么不能实现死锁????????????rnrnrnrnrnclass Dead implements Runnablernrn private boolean flag;rn Dead(boolean falg)rn rn this.flag = flag;rn rn public void run()rn rn if (flag)rn rn while (true)rn rn synchronized(Locks.obj1)rn rn System.out.println("if 1 启动!");rn synchronized(Locks.obj2)rn rn System.out.println("if 2 启动!");rn rn rn rn rn elsern rn while (true)rn rn synchronized(Locks.obj2)rn rn System.out.println("else 2 启动!");rn synchronized(Locks.obj1)rn rn System.out.println("else 1 启动!");rn rn rn rn rn rnrnrnrnclass Locks//定义锁对象rnrn static Object obj1 = new Object();rn static Object obj2 = new Object();rnrnrnclass DeadLockrnrn public static void main(String[] args) rn rn Thread t1 = new Thread(new Dead(true));rn Thread t2 = new Thread(new Dead(false));rnrn t1.start();rn t2.start();rnrn rnrn
Java中多线程和Socket的问题
现在我在用Java做一个传输XML文档的程序。rn刚做了一个框架,但碰到了一些<em>问题</em>,请各位老大诊断一下。rn程序用TCP协议进行传输,多用户连接使用<em>多线程</em>解决。rn程序由三个类组成,两个线程类,一个主类。rnrnExServer 是主类。它创建一个连接请求侦听线程(ExListenThread ),之后相应用户操作命令(例如收到rnrnquit后结束程序运行)rnExListenThread 是连接请求侦听线程,接受用户连接请求,创建服务线程(ExServiceThread)处理接受数据。rnExServiceThread 是服务线程。接收XML文档并显示出来。XML文档以结尾,接受完文档线程结束。rnrn现在的<em>问题</em>是:rn发送一个XML文档没有<em>问题</em>,收到数据很正确的显示出来。rn接着发第二、第三、第四个XML文档。控制台中没有动静,数据显示不出来。但在控制台随便输入几个字符。第rnrn二、第三、第四个XML文档唰一下全出来了。其中第二个文档必定是不完整的,缺一部分数据。之后的第三、第rnrn四个文档又是完整的。rn请大家分析一下是什么原因?是<em>多线程</em>共同向system.out写东西时的冲突<em>问题</em>?还是Socket中数据丢失的<em>问题</em>rnrn?大家有什么更好的建议能解决这些<em>问题</em>?谢谢!rnrn下面是代码:rnimport <em>java</em>.io.*;rnimport <em>java</em>.net.*;rnrnclass ExServiceThread extends Thread rn rn private Socket m_socket;rn private BufferedReader in;rn private PrintWriter out;rn rn public ExServiceThread (Socket s) throws IOException rn m_socket=s;rn in = new BufferedReader(new InputStreamReader(m_socket.getInputStream()));rn out = new PrintWriter(new BufferedWriter(new rnrnOutputStreamWriter(m_socket.getOutputStream())),true);rn start();rn rn public void run() rn try rn while (true) rn String str = in.readLine();rn System.out.println("Receive:"+str);rn out.println("Data OK.");rn if (str.equals("")) break;rn rn System.out.println("Closing...");rn catch (IOException e) rn rn finally rn try m_socket.close();rn catch (IOException e) rn rn rnrnrnclass ExListenThread extends Thread rn static final int PORT =82;rn private ServerSocket m_socket;rn private boolean stop=false;rn rn public ExListenThread() throws IOException rn m_socket = new ServerSocket(PORT);rn start(); rn rn rn public void terminate() stop=true;rn rn public void run()rn System.out.println("server started:");rn try rn while (!stop) rn Socket c_socket =m_socket.accept();rn try rn new ExServiceThread(c_socket);rn catch (IOException e) rn c_socket.close();rn rn rn catch (IOException e) rn rn finally rn try rn m_socket.close();rn catch (IOException e) rn rn rnrnrnpublic class ExServer rn public static void main(String[] args) throws IOException rn try rn ExListenThread listenthread=new ExListenThread();rn while (true)rn BufferedReader stdin =new BufferedReader(new rnrnInputStreamReader(System.in));rn String str=stdin.readLine();rn if (str.equals("quit")) rn listenthread.terminate();rn break;rn rn rn catch (IOException e) rn rn rn rnrn
java多线程中的join问题
各位大神,本人<em>java</em>小菜鸟。学习<em>java</em>遇到一点<em>问题</em>,下面的代码中,已经使用了join方法,为什么显示的结果不是1000呢?请前辈指教!nn```n public class JoinThread extends Thread n public static volatile int n=0;n public void run()n for(int i=0;i<10;i++,n++)n tryn sleep(2);n catch(Exception e)n n n public static void main(String args[])throws Exceptionn Thread[] threads=new Thread[100];n for(int i=0;i
Java中多线程执行权问题
[b]以下是测试代码[/b]rn请问一下,能不能出现t1和t2线程一直在互相夺取cpu的执行权而一直不去执行Runnable类中的run方法,为什么呢?rn我是刚开始学习Java的小菜鸟.还请各位前辈费心给我讲一讲rn谢谢[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif][/img][img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif][/img][img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif][/img]rn[code=<em>java</em>]class ThreadDemornrn Student s1 = new Student();rn Thread t1 = new Thread(s1);rn Thread t2 = new Thread(s1);rn t1.start();rn t2.start();rnrnclass Student implements Runnablernrn while(true)rn rn public void run()rn rn System.out.println("循环结束调用run()");rn rn rn[/code]rn[b]以上是测试代码[/b]rnrn
一个java中的多线程问题
ublic class ThreadJoin implements Runnable rn rnpublic static int a = 0; rnpublic void run() rn rnfor(int k=0;k+a); rn三条语句有没有什么执行的先后顺序?rn
java中的多线程和数据同步问题
编程中有一个经典的<em>多线程</em><em>问题</em>:有两个线程,一个负责写入数据,一个负责读出数据,当两个线程同步运行时,如何保证数据的准确性和安全性?人们将这一<em>问题</em>抽象成生产者-消费者模型。 //有一个数据模型Person类,包含三个属性以及写入和读取这三个属性的方法。 public class Person { private String name; private String gender; p...
Java多线程中的死锁问题
1、什么是死锁 我们假设有两个线程A和B,两者的run,都要去访问两个对象,A要访问X和Y,B要访问X和Y,这个时候,A会给X和Y加上自己的互斥锁,而B也会给X和Y加上互斥锁,A要首先给X加上锁,然后再去争取锁住Y,而这时,B一看X被锁了,就率先锁住了Y,这个时候,A在等着B释放Y,B在等着A释放X,两者就相当于死锁了,谁都需要对方退一步,相同的是谁也不会退一步。 看一段代码来实现上述情况:
Java多线程中锁的问题
     在目前开发的<em>java</em><em>多线程</em>程序中用的最多的锁就是Synchronized和ReentrantLock,相信大多是童鞋都用过Synchronized但是对ReentrantLock可能了解的不多,下面就详细的对比分析一下两种锁的不同之处和用法 先说Synchronized,这种锁用起来比较简单,这个方法加锁,相当于不管哪一个线程A每次运行到这个方法时,都要检查有没有其它正在用这个...
java多线程使用问题
import <em>java</em>.awt.*;rnimport <em>java</em>.awt.event.*;rnrnpublic class BollTestrnrn public static void main(String[] args)rn Myrame frame=new Myrame();rn frame.setBounds(10, 10, 500, 500);rn frame.setVisible(true);rn frame.addWindowListener(new WindowAdapter()rn public void windowClosing(WindowEvent e)rn System.exit(0);rn rn );rn rnrnrnclass Myrame extends Frame implements Runnablern Thread 红色球,黄色球;rn MyCanva red ,blue; rn double t=0; rn Myrame()rn 红色球=new Thread(this);rn 黄色球=new Thread(this); rn red=new MyCanva(Color.red); rn blue=new MyCanva(Color.blue); rn setLayout(null);rn add(red);rn add(blue);rn red.setLocation(60,100);rn blue.setLocation(60,100); rn 红色球.start();rn 黄色球.start();rn rn public void run()rn while(true)rn t=t+0.2;rn if(t>20)t=0;rn if(Thread.currentThread()==红色球) rn int x=60;rn int h=(int)(1.0/2*t*t*3.8)+60;rn red.setLocation(x,h);rn tryrn 红色球.sleep(50);rn rn rn catch(InterruptedException e)rn rn rn else if(Thread.currentThread()==黄色球)rn int x=60+(int)(26*t);rn int h=(int)(1.0/2*t*t*3.8)+60;rn blue.setLocation(x,h);rn tryrn 黄色球.sleep(50);rn rn rn catch(InterruptedException e)rn rn rn rn rn rnclass MyCanva extends Canvasrn Color c;rn MyCanva(Color c)rn setSize(20,20);rn this.c=c;rn setBackground(Color.gray); rn rn public void paint(Graphics g)rn g.setColor(c);rn g.fillOval(0, 0, 20, 20);rn rn rnrnrnrnrn此程序实现模拟物体自由落体和平抛运动,在红色球.start();黄色球.start();启动线程时,在画布上画得红球和和蓝球的位置没有为先显示为blue.setLocation(60,100)red.setLocation(60,100)的位置,在转到线程方法中red.setLocation(x,h),blue.setLocation(x,h)的位置,而是直接显示为后者的位置,这是为什么??线程使用cpu资源前应该显示 red和blue的最初位置啊?rn rn
问个问题
int i;rnxx.xx(new Integer(i));//不是xx.xx(i);rn想问下什么情况下,要如此实例化个新对象作为参数?rnrn
问个import的问题
是否可以在ado上调用import/export命令?我调用的时候为啥总是失败?是不是命令格式不对?rn是否有ibm提共的api实现import/export命令(比如ms就有api来进行bcopy)
问个级联删除的问题
Delete t_kp_dtl Where fno = :ls_fno and t_kp_dtl.id=t_yfk.id and t_yfk.kind='wm';rn我现在从2张表里面做连接,满足条件的删除t_kp_dtl的数据,但是程序报错,说t_yfk.id不正确。rn请问应该如何写?多谢了
问个javascript问题
一个页框架,分左边 left 和rightrn在right里面嵌入一个page ,文件名:rd_pe.asp .rnrd_pe.asp里面有个form,定义如下:rn rn rn rn rn rnrnrnrn<em>问题</em>一:rn在
问个指针问题
[code=c]void GetThreshPic(Mat *ptrMat)rnrn Mat im =*ptrMat;rn rnrn rnrn if(im.empty())rn rn cout << "Cannot load image!" << endl;rn rn cvtColor( *ptrMat, *ptrMat, CV_RGB2GRAY );rn threshold( *ptrMat, *ptrMat, 125, 255,0 );rn// return im;rnrnint _tmain(int argc, _TCHAR* argv[])rnrn cv::Mat im = cv::imread("D:\\Program Files (x86)\\CCAD\\CCAD\\splash.jpg"); rn //im= rn GetThreshPic(&im);[/code]rnrn为什么我*ptrMat.empty() 就不行了那?rn一定要Mat im =*ptrMat; im.empty() 才可以rnC++ 中不是*ptrMat 就是代表变量了吗?
问个SPI的问题
我有本费尔出的那本防火墙的书!上面好象是把安装自己的SPI DLL是用了修改注册表的方式!但在2000下总是有<em>问题</em>!动不动就系统死机!请问除了向他那样改注册表,还有没有别的方法把自己的DLL安装到系统中去!做好举下例子!谢谢了!
问个ORACLE存储过程的问题
IF PAUDIT='V' then rnrn下面我接了一句update语句。但提示有错rn错误如下:rnrnPROCEDURE SALER.PROC_AUDITFLOW 编译错误rnrn错误:PLS-00103: 出现符号 "IF"在需要下列之一时:rn := . ( @ % ;rn 符号 ";" 被替换为 "IF" 后继续。rn行:20rn文本:if PAUDIT='V' thenrnrnrn请问IF then 后面只能接哪些语句?还有这个错误是什么<em>问题</em>?rn
问个白痴的问题
asp中怎么检查输入的用户名称只能有字母、数字、下划线或其组合,不能有汉字???急!!
问个幼稚的问题
在JBUILD8如何生成EXE文件?rnrn还有个<em>问题</em>是,在JAVA里能不能想C++那样调用WINDOW的API函数?rnrn谢谢各位!
问个简单的问题
没用过access,临时要用到,请各位高手指点,先谢了:)rnrn用sql什么样的语句能在数据库中(比如我有一个叫Mytest的access数据库)查出所有的用户列表(剔除系统表的)rnrn我自己试着用select * from customer order by name ,呵呵,不行。而且也不能剔除系统表。请指教。谢!
问个简单的问题。。。
model5=new QSqlQueryModel();rn model5->setQuery("select * from welllogdata");rn //qDebug()<< model->data(model->index(0,0).toString());rn qDebug()<< model5->index(0,3).data().toString();rn qDebug()<< model5->data(model5->index(1,1)).toString();rn数据库有数据正常 调试输出怎么是空值。。。 是写在一个继承于QTableView子类的重载paintEvent(QPaintEvent *event)中 在其他的类中rn能正常出值 新手求教。。请问这是怎么回事?
问个checkbox的问题
请问:在Struts结构中,如何将checkbox的初始状态设为选中?在静态html中可以用checked选择,但是到了Struts结构中,checked没有用了,请问如何解决?谢谢。
问个索引的问题
我对MySql的索引有些不明白,我上网查了下,还是有<em>问题</em>请教。rn比如我有个表tb,里面有个字段name,我创建了有个rn索引:CREATE INDEX indexName ON tb(name);rn那么是不是如果以后使用查询时,比如:rnselect * from tb where name='abc';rn系统就自动会使用索引了?rn另外:我创建的使用名称indexName没有看到在哪里使用?rn(我过去学的AS/400,它里面有个叫逻辑文件的,与索引很像,rn但是我在使用时,必须指定逻辑文件,可是我在mysql里没有rn看到使用我过创建的索引,这是怎么回事)rn
问个数学问题
已经知道空间中某直线上的2个点分别为:a(x1, y1, z1),b(x2, y2, z2).rn求线段ab中距离a点1/4处(即距离b点3/4)的点的坐标。rn
问个DataGrid的问题...
怎么让指定列的文本后面添加一个“¥”符号rnrn列的文本是数据库中导出的。。。rnrn谢谢
问个简单的问题
int remove(const char*)rnconst指的是什么?
问个表单提交问题
rn 提交rnrnrn在点击 提交后, 老说网页错误,请问为什么啊? rn请给正确答案,谢谢了。
问个查找的问题
“按姓名查找”rn这样的目的怎样用VC++程序实现呢?rnrn我是初级学徒,提的<em>问题</em>很泛,不详细,希望有意者多给点相关的建议rn……
问个时间片轮转的问题
请问在时间片轮转法中,是某进程时间片结束后立刻引起一个中断并进行进程调度,还是时间片结束后要等其它设备发出中断请求,才检测时间片是否结束,再进行调度呢?rn谢谢~~
问个地址栏问题
<em>问题</em>1:http://my.csdn.net/my/notifications 想这类地址栏后面怎么弄成的啊一般不是.aspx或者.html么他什么作用rnrnrn <em>问题</em>2:我想弄一个 想博客一样框架固定的内容部分东西在变.. 怎么应该怎么弄啊rn 一是为每个用户生成一个页面?二是传参数进去把相关内容写到固定页面 这个参数具体怎么传啊 按照<em>问题</em>1的方法rn 谢谢了rn
问个oracle的问题
我想在一个表中找出所有email后缀都是test.com的,该怎么写????
问个Action问题
package web;rnrnimport <em>java</em>x.servlet.http.HttpServletRequest;rnimport <em>java</em>x.servlet.http.HttpServletResponse;rnrnimport org.apache.struts.action.Action;rnimport org.apache.struts.action.ActionForm;rnimport org.apache.struts.action.ActionForward;rnimport org.apache.struts.action.ActionMapping;rnrn/** rn * MyEclipse Strutsrn * Creation date: 08-25-2006rn * rn * XDoclet definition:rn * @struts.action validate="true"rn */rnpublic class TestAction extends Action rnrn // --------------------------------------------------------- Instance Variablesrnrn // --------------------------------------------------------- Methodsrnrn /** rn * Method executern * @param mappingrn * @param formrn * @param requestrn * @param responsern * @return ActionForwardrn */rn public ActionForward execute(rn ActionMapping mapping,rn ActionForm form,rn HttpServletRequest request,rn HttpServletResponse response) rn rn // TODO Auto-generated method stubrn return null;rn rnrnrnrn小弟是个鸟,请问我应该怎么样把上面的这个action和我原先写的DAO(下面)联系起来啊?rnckage dao;rnrnimport <em>java</em>.util.*;rnrnimport org.bean.HibernateSessionFactory;rnimport org.hibernate.Query;rnimport org.hibernate.Session;rnrnpublic class BaseDAO rn public List queryList()rn Session session = null;rn List list = null;rn tryrn list = new ArrayList();rn session = HibernateSessionFactory.currentSession();rn String hql = "from Base";rn Query query = session.createQuery(hql);rn list = query.list(); rn catch(Exception ex)rn System.out.println("queryList:"+ex.getMessage());rn finallyrn session.close();rn rn return list;rn rnrnrn
问个c++的问题?
B *p;rn p=new B[3];rnrn 在下想问下面的程序是不是要执行三次构造函数,和三次析构函数。rn p[0]=B("ma",4.8);rn p[1]=B("wang",3.6);rn p[2]=B("li",3.1);rn 就是说执行rn constructorrn destructorrn constructorrn destructorrn constructorrn destructorrn 我上机试的确如此,为什么????
问个水晶报表的问题
像下面这个报表这样 用水晶报表可以做吗?要怎么做?rn最好附带代码 ,第一次接触水晶报表..一点也不明白~谢谢了~!rn[img=http://www.lingshitinghai.com/1.jpg][/img]rn
问个MFC-SDI的问题.
各位大侠,天气炎热,写程序的时候不望泡杯绿茶,降火.rnrnrn问下: MFC的多文档程序中每个CXXXVIEW类的是不是都对应一个CChilDFrame呢?rn换句话说:是不是我在CChilDFrame类中,this->XXX函数(),就能得到CVIEW类的指针呢?rnrnrnrn麻烦大家了
问个TR069的问题
协议中的Object和Event是什么概念?有大大能帮忙一下吗?
问个搜索的问题
我在自己的网页中加入这些代码:rnrn rn rn rn rn rnrn然后把该文件传递到我自己的网站上(我申请了个空间),rn可是我在百度与google上都搜索不到我偶的网页(我按keywordsrn与description都不行),请问:我要怎么做才能搜索到自己的网页呢?谢谢
问个xp的问题
我执行MSN Messenger,配置了.net passport以后,系统就疯狂的拨号,我把IE里的拨号属性设置“从不进行拨号连接”还是不行rnrn请问我该如何办
问个mysql的问题
我想把很多IP转成二进制再存到数据库里面,但是不知道怎么在mysql 里面建立二进制存储字段,只能存0和1那种
问个图片旋转的问题
想要实现这个功能:rn制作一个图片按钮,点击一次,图片旋转360度,要缓慢旋转,每一个intervial旋转9度rnrn能完成么?rn请问高手
问个函数问题
请问下,高手定义函数有返回值和没有返回值有什么区别吗??
问个调试的问题
我的代码在调试时 错误如下,请问是何种错误,应如何解决rnFirst-chance exception in CounsPro.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.rnFirst-chance exception in CounsPro.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.rnWarning: constructing COleException, scode = DISP_E_TYPEMISMATCH ($80020005).rnWarning: constructing COleException, scode = DISP_E_TYPEMISMATCH ($80020005).rnFirst-chance exception in CounsPro.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.rnFirst-chance exception in CounsPro.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.
word开发技术下载
word开发代码型,文档都有!希望可以帮助大家,我们共同学习! 相关下载链接:[url=//download.csdn.net/download/u010105325/5516941?utm_source=bbsseo]//download.csdn.net/download/u010105325/5516941?utm_source=bbsseo[/url]
Castle-2.5源码下载
Castle-2.5源码 相关下载链接:[url=//download.csdn.net/download/xiaomei1029/5706197?utm_source=bbsseo]//download.csdn.net/download/xiaomei1029/5706197?utm_source=bbsseo[/url]
JSP应用开发详解(第三版).刘晓华等.扫描版.pdf下载
JSP应用开发详解(第三版).刘晓华等.扫描版.pdf 相关下载链接:[url=//download.csdn.net/download/sunset_1/8507501?utm_source=bbsseo]//download.csdn.net/download/sunset_1/8507501?utm_source=bbsseo[/url]
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法
我们是很有底线的