| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 988 人关注过本帖
标题:JAVA 线程问题
只看楼主 加入收藏
野蛮女人
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:827
专家分:0
注 册:2007-4-7
结帖率:100%
收藏
 问题点数:0 回复次数:13 
JAVA 线程问题
我想实现一个数据发送与接受的功能 。
数据的发送与接受是否要写在一个线程里,如果不写在一个线程里 会不会有问题
搜索更多相关主题的帖子: JAVA 线程 
2007-06-11 10:22
起风的时候
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-1-16
收藏
得分:0 
可以写在一个线程里啊。。但是这样就不能同时接受和发送消息了啊
如果你接受的数据很大的话,那要等他接受完了才能发送了。

不过我也是就C++的理解,JAVA我还没学到那里

[此贴子已经被作者于2007-6-11 12:56:37编辑过]


2007-06-11 12:55
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
不会有问题,一个线程专门发数据,一个线程专门收数据.挺好的啊

可惜不是你,陪我到最后
2007-06-11 14:50
野蛮女人
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:827
专家分:0
注 册:2007-4-7
收藏
得分:0 
Z89gjUC9.rar (2.49 KB) JAVA 线程问题


万岁 能不能帮奴婢看看错在哪呢

[shadow=255,purple,5]好人不长命,祸害一万年![/shadow]
2007-06-11 19:24
起风的时候
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-1-16
收藏
得分:0 

你客户端的MainClinet函数
[CODE]new Thread(new Runnable(){
public void run() {
while(true)//这个线程需要不断的运行来接收信息,所有同样需要无限循环,其它好像都没什么错
{

String tmp = c.receive();
a1.append(tmp);
}
}
}).start();[/CODE]

2007-06-11 21:31
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
以下是引用野蛮女人在2007-6-11 19:24:20的发言:
[attach]22350[/attach]
万岁 能不能帮奴婢看看错在哪呢



看了你的代码,写得不是很好

你要实现的功能其实很简单,没必要把简单的问题搞得这么复杂,用了四个类来实现

其实两个类就完全可以了

特别是在你的MyServer类里,写里很乱,

不过主要问题是,你和客户端和服务器一开始都是在等对方发东西过来,所以两方就一直卡在那里.你应该让一方先发一方先收,这样才能让客户端和服务器交互起来


可惜不是你,陪我到最后
2007-06-12 10:50
起风的时候
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-1-16
收藏
得分:0 

老千,他的服务器端开始是在等别人发送消息,但是她的客户端有两个线程啊,一个线程在接收,另外一个线程可以给服务器发送数据的,而他的服务器只需要等待客户端的消息,一收到消息,马上转交给所有的客户端,以实现类似于QQ那样的聊天方式,就我的理解应该是这样的,不过我虽然不太懂JAVA,但是也觉得她的代码写得有点凌乱。


2007-06-12 11:54
野蛮女人
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:827
专家分:0
注 册:2007-4-7
收藏
得分:0 
是啊 我的程序总是写的那么乱,一开始想的好好的可是一写就越写越乱。我也不知道是怎么回事,千里能不能指点一下啊如何做才能把程序写的更好 更清晰啊 有没有什么好书推荐一下
还有你说的一直卡在那里是什么意思啊 服务器一开始等待然后客户端发送怎么会卡在那里呢!不太理解能不能说的清楚些

[shadow=255,purple,5]好人不长命,祸害一万年![/shadow]
2007-06-12 14:18
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
呵 呵,写程序多了,然后自己思考的多了,就不会乱了,然后写程序就很有条理了

至于书嘛,我也没系统地看过什么书.

我觉得写CS程序的时候,线程的问题一定要搞清楚,要赋于一个线程一个确定的任务,不要在一个线程里面做很多事情,这样线程才好管理

比如,服务器起动以后,起一个线程无限循环在那里监听,监听到一个连接,就起一个新的线程去处理这个新的连接

然后客户端,建立连接以后,起一个死线程在那里一直等待服务器发回的信息,并起方法去处理,然后你发信息给服务器的线程就可以相对自由一些了,然后发信息的时候,也要记得同步,不要一个方法发了一半,另一个方法又来发了,这样就会造成服务器收到的数据不连续,也就很容易出错了

简单地一些话,希望对你有所帮助.也希望你的JAVA越学越好

可惜不是你,陪我到最后
2007-06-12 14:32
野蛮女人
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:827
专家分:0
注 册:2007-4-7
收藏
得分:0 
如果我要是写会不会对以后的扩展不利呢

[shadow=255,purple,5]好人不长命,祸害一万年![/shadow]
2007-06-13 08:14
快速回复:JAVA 线程问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021426 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved