CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

请教一下Java的多线程机制疑惑。

楼主seadaughter(我喜欢月亮,温柔、博大,寒冷的温暖)2006-03-22 22:44:39 在 Java / J2SE / 基础类 提问

public   class   Server   implements   Runnable  
  {  
        private   Thread                     myThread;  
        private   boolean                   server_exit;  
        public   Server(boolean   daemonThraed   )  
        {  
            myThread   =   new   Thread(   this   );  
              if   (   daemonThraed   )  
              {  
                    myThread.setDaemon(   true   );  
              }  
              myThread.start();  
        }  
        public   void   run()  
        {  
              while   (   !server_exit   )  
              {  
                        //处理连接  
              }  
        }  
  }  
  对于以上代码,一开始的时候Server一个实例在运行。那么第一个连接进来了,就由run中处理连接部分代码处理他。几乎同时,第二个连接进来了,是不是因为多进程的原因,系统又开辟了一新的线程处理??   而不需要让第二个连接处理完毕??还是什么。。。谁能说说?高分赠与。。 问题点数:100、回复次数:13Top

1 楼interpb(曾曾胡,深怕情多累美人!)回复于 2006-03-22 22:48:03 得分 0

不是因为多进程的原因,系统又开辟了一新的线程处理??   而不需要让第二个连接处理完毕??  
   
  对  
   
  你理解就是这样  
  Top

2 楼seadaughter(我喜欢月亮,温柔、博大,寒冷的温暖)回复于 2006-03-22 22:51:01 得分 0

interpb(曾曾胡)   :  
  你的意思是说,如果我的代码如下:  
  public   class   Server   //没有实现Runnable接口  
  {  
        private   Thread                     myThread;  
        private   boolean                   server_exit;  
        public   Server(boolean   daemonThraed   )  
        {  
        }  
        public   void   run()  
        {  
              while   (   !server_exit   )  
              {  
                        //处理连接  
              }  
        }  
  }  
  这样的话,第一个连接进来了,第二个也进来的话,在第一个被处理完全之前,都不予理会,甚至抛弃??是这样吗?Top

3 楼Dan1980()回复于 2006-03-22 22:58:02 得分 30

楼主,你的代码只有一个线程啊(main线程除外),怎么存在“第一个连接进来了……几乎同时,第二个连接进来了”?Top

4 楼seadaughter(我喜欢月亮,温柔、博大,寒冷的温暖)回复于 2006-03-22 23:02:32 得分 0

to   Dan1980(不用IDE的大傻瓜):  
   
  嗯,只有一个线程?    
  1、那么如果要实现同时多个连接进来,也能同时处理。怎么写(伪代码)?  
  2、按照你所说。。岂不是上面跟单线程没区别。。代码如下:  
    public   class   Server   //没有实现Runnable接口  
  {  
        private   Thread                     myThread;  
        private   boolean                   server_exit;  
        public   Server(boolean   daemonThraed   )  
        {  
        }  
        public   void   run()  
        {  
              while   (   !server_exit   )  
              {  
                        //处理连接  
              }  
        }  
  }  
   
  Top

5 楼interpb(曾曾胡,深怕情多累美人!)回复于 2006-03-22 23:10:14 得分 10

如果你的服务器没有实现多线程     那它同时只能处理一个请求  
   
  你说的情况完全有可能  
  Top

6 楼seadaughter(我喜欢月亮,温柔、博大,寒冷的温暖)回复于 2006-03-22 23:13:02 得分 0

interpb(曾曾胡):  
  假设我的服务器代码就是那个呢。。只能同时处理一个请求?  
  那么如果我需要同时处理多个。该怎么写?Top

7 楼Dan1980()回复于 2006-03-23 02:55:15 得分 10

main方法呢?没看到程序是如何启动的,怎么知道你倒底有几个线程?  
   
  一个Runnable可以被N个线程启动的,但如果没有实现Runnable,你new   Thread(this)的时候就要报编译错误啦,还存在什么线程??Top

8 楼LuJianjun5(用一首歌的时间怀念你……)回复于 2006-03-23 03:17:05 得分 10

同时处理几个就   new   几个线程  
  然后start   他们Top

9 楼ys_wangtao(用技术创造艺术)回复于 2006-03-23 11:32:14 得分 20

在run()方法中加入Thread.sleep()方法,多个线程会同时执行Top

10 楼seadaughter(我喜欢月亮,温柔、博大,寒冷的温暖)回复于 2006-03-23 12:52:09 得分 0

启动就是   Server   se=new   Server();  
  这样子呢。Top

11 楼Dan1980()回复于 2006-03-23 12:55:44 得分 10

每次new   Server();就启动了一个线程啊。Top

12 楼seadaughter(我喜欢月亮,温柔、博大,寒冷的温暖)回复于 2006-03-23 14:05:37 得分 0

噢。。。我好像明白了。。大家再去解释一下以下这个?  
  http://community.csdn.net/Expert/topic/4634/4634603.xml?temp=.7479669Top

13 楼Mark_Chen(雨枫)回复于 2006-03-23 14:17:57 得分 10

几个new   Thread()就有几个线程!Top

相关问题

  • JAVA多线程机制的实现?
  • 多线程的疑惑!
  • java多线程
  • 一个有关多线程和疑惑!!!???
  • 多线程的问题(疑惑)
  • java多线程问题
  • Java的多线程问题---------〉〉〉〉〉〉〉〉〉〉
  • java 多线程问题
  • java 多线程问题.
  • java 的多线程问题

关键词

  • 线程
  • 连接
  • 代码
  • server
  • daemonthraed
  • 处理
  • mythread
  • runnable
  • 启动
  • 实现

得分解答快速导航

  • 帖主:seadaughter
  • Dan1980
  • interpb
  • Dan1980
  • LuJianjun5
  • ys_wangtao
  • Dan1980
  • Mark_Chen

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo