Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >一次做多件事(Thread?)

一次做多件事(Thread?)
EN

Stack Overflow用户
提问于 2010-04-01 23:47:19
回答 5查看 4.9K关注 0票数 4

全,

一个真正简单的方法是让一个程序同时做多件事,即使计算机不一定有多个“核心”。我可以通过创建多个线程来做到这一点吗?

我的目标是能够让两台计算机联网(通过Sockets)来响应对方的请求,同时我的程序将能够管理一个UI。我还希望服务器能够同时处理多个客户端。

我的理解是,通信是通过BufferedReader.readLine()和PrintWriter.println()完成的。我的问题是,我希望服务器等待多个readLine()请求,同时还在做其他事情。我该怎么处理呢?

非常感谢,

乔纳森

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-04-01 23:50:48

是的,您可以通过在Java程序中拥有多个线程来实现这一点。

由于Java中的机制在执行此操作时会变得相当复杂,因此请参阅Java教程中的相应部分:

http://java.sun.com/docs/books/tutorial/essential/concurrency/

票数 1
EN

Stack Overflow用户

发布于 2010-04-01 23:49:38

看看这个页面:http://www.ashishmyles.com/tutorials/tcpchat/index.html --它很好地描述了线程、UI细节等,并给出了一个将两者合并在一起的聊天示例。

另外,考虑使用Apache MINA。它非常轻量级,不依赖于任何外部库(除了slf4j),并且使得从套接字中获取东西非常容易,而不需要在as循环中遍历,而且它也是非常非阻塞的(或者在需要的时候阻塞)。所以,你有一个实现IoHandler的类,然后你用一个接受器或其他Mina连接类注册它。然后,它会通知您何时接收到数据包。它以一种令人愉快的方式为你处理了所有通常会导致瘫痪的后端事务(例如,手动为客户端创建多个线程,然后管理这些线程)。

它还支持编解码器,您可以在其中转换发送和接收的消息。因此,假设您希望在连接的两端接收Java对象--这将为您完成转换。也许你也想把它们拉上拉链,让它更有效率?您也可以编写该代码,将其添加到对象编解码器下面的链中。

票数 1
EN

Stack Overflow用户

发布于 2010-04-01 23:50:02

可以,只要创建多个线程即可。无论处理器是否具有多个内核,它们都将并发运行。(对于单核,操作系统只是在某些点上暂停正在运行的线程的执行,并运行另一个线程一段时间,因此实际上,多个线程似乎正在同时运行)。

这里有一个很好的并发教程:http://java.sun.com/docs/books/tutorial/essential/concurrency/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2564332

复制
相关文章
最近做的几件事
MVC模型,把前、后以及中间控制器分离了,3样东西,分开写,Coding的时候,专注于某一个细节即可,最后再联动调试。
libo1106
2018/08/08
3390
[译] 我做基础架构学到的 42 件事
最近读到了分布式系统研究者 Mahesh Balakrishnan 的一篇博客《42 things I learned from building a production database》。同样做基础架构,看完大佬总结的经验后拍案叫绝,其中有几条简直是真知灼见,故翻译了全文。
CPP开发前沿
2022/06/04
2430
精读《不再需要 JS 做的 5 件事》
关注 JS 太久,会养成任何功能都用 JS 实现的习惯,而忘记了 HTML 与 CSS 也具备一定的功能特征。其实有些功能用 JS 实现吃力不讨好,我们要综合使用技术工具,而不是只依赖 JS。
黄子毅
2022/04/18
2.3K0
精读《不再需要 JS 做的 5 件事》
ERP迁移计划:首先做这5件事
SAP S/4HANA具有许多优势:实时分析、更好的数据管理、流程标准化等。然而,对于许多企业来说,实现这一目标的道路是艰难的。从混合 IT 环境和停机时间到不可预测的项目周期和资源匮乏,宁愿继续等待的利益相关者从不缺乏。但是只要有了充分的准备,就不会手足无措。如果您能认真研究您的数据,在沙盒系统中进行迁移测试,并让合适的人员参与,那么您将顺利成功过渡到 SAP S/4HANA。
SNP数据迁移
2022/12/09
3170
ERP迁移计划:首先做这5件事
我做基础架构学到的42件事
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/08/29
2110
我做基础架构学到的42件事
你不知道 CSS 可以做的 4 件事
这样就实现了延时1s,一共0.5s的淡入动画。其中ease是animation-timing-function的默认值。animation-timing-function使用了三次贝塞尔(Cubic Bezier)函数生成速度曲线,可以让我们的动画产生平滑的过渡。但是有的时候我们并不想要平滑的过渡,比如想要实现下面小人跑动的效果,该怎么实现呢?
落落落洛克
2021/09/17
1.2K0
你不知道 CSS 可以做的 4 件事
WordPress安装后必做的18件事
创建WordPress博客后该做些什么?安装WordPress后,要正确设置和启动网站,还需要做很多事情。在本文中,我们将分享安装WordPress后应该立即做的18件重要的事情。
React架构设计
2019/12/18
3.8K0
你不知道 CSS 可以做的 4 件事
这样就实现了延时1s,一共0.5s的淡入动画。其中ease是animation-timing-function的默认值。animation-timing-function使用了三次贝塞尔(Cubic Bezier)函数生成速度曲线,可以让我们的动画产生平滑的过渡。但是有的时候我们并不想要平滑的过渡,比如想要实现下面小人跑动的效果,该怎么实现呢?
桃翁
2021/09/10
1.3K0
你不知道 CSS 可以做的 4 件事
redis安装好之后必做的几件事
先来看一段日志 1525:M 21 Nov 11:10:36.412 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 22552:M 19 Jan 10:36:26.936 # Server started, Redis version 3.2.12 22552:M 19 Jan 10:36:2
用户8851537
2021/07/22
3960
程序员最喜欢做的四件事
程序员一般都是比较安静的,把大部分时间花在程序开发上了。那程序员除了上班,一般都有哪些业余的生活呢? 一,宅家里。程序员一般喜欢宅在家里,不太喜欢出去活动。在家里折腾电脑手机,写写程序,看看编程技术和科技方面的书,几乎每一个程序员手边都有一堆这样那样的书。程序员常常即使没有问题也会去找一些问题来自己瞎折腾,这成了一种乐趣。 二,泡网络。程序员几乎都喜欢泡网络,因为网络上可以发现很多新奇的东西,学习很多新奇的编程技术,看到很多新奇的IT新闻。程序员往往喜欢比较前言的东西,这些东西也都是最先在网络上出现。久
程序员互动联盟
2018/03/16
1.3K0
程序员最喜欢做的四件事
关于网站SEO优化,我只做四件事
在SEO网站优化的过程中,多数人讲网站优化,就是讲网站的架构,关键字,标题,描述,dofollow,nofollow,sitemap,伪静态,H标签,关键字密度,Css,CDN....
神勇大师兄
2020/02/27
6200
关于网站SEO优化,我只做四件事
看了这么多小程序开发手册,跟我们动手做一次吧!
微信小程序,其便捷的场景体验,想必已经融入了大家日常的工作学习中。同样对于开发者而言,小程序的开发快捷,使用方便,越来越多的产品会落地到微信小程序上。但传统的微信小程序开发,和普通的H5页面开发或者原生APP开发相比,只是改变了前端部分的开发方式,还是离不开厚重的后台开发。
腾讯技术工程官方号
2019/05/16
5930
看了这么多小程序开发手册,跟我们动手做一次吧!
当 Atom 遇见 VSCode:微软将对 GitHub 做的 6 件事
在微软宣布以 75 亿美元的价格收购 GitHub 后,这个在全球拥有超过 2800 万开发者的代码托管平台即将在微软庞大的云计算框架下进行独立运作。 微软 CEO Satya Nadella,CFO Amy Hood ,GitHub 联合创始人兼现任 CEO Chris Wanstrath ,以及即将上任的 GitHub CEO(也是 Xamarin 创始人)Nat Friedman 昨天在短暂的媒体电话会议中分享了有关此次收购和微软对 GitHub 的后续规划的更多细节。
Debian中国
2018/12/21
5900
做一次黑客,入侵一次服务器
前两天刚买了个腾讯服务器(CVM),这次登陆上去的时候特别卡,通过top发现负载特别高,因为是刚搭建的环境,也没有运行什么应用程序,所以我觉得这有点不正常。
叫我阿柒啊
2021/05/11
2.3K1
做一次黑客,入侵一次服务器
安装Ubuntu10.04TLS后可做的几件事
Ctrl+Alt+T 打开终端(或者Alt+F2打开运行应用程序),输入gconf-editor,打开配置编辑器。
三杯水Plus
2018/11/14
6930
Java编程中“为了性能”需做的26件事…
使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:
用户2192970
2019/02/22
5450
Mysql thread 与 OS thread
欢迎阅读 陈同学博客原文 参考资料 MySQL Threads The threads Table How MySQL Uses Threads for Client Connections MySQ
码代码的陈同学
2018/06/17
4K0
Mysql thread 与 OS thread
Check if a Thread Is Main Thread in Android
How to check a certain thread is the main one or not in Android? You may say it could be determined
技术小黑屋
2018/09/04
1.5K0
优秀程序员最喜欢做的七件事
世界上的很多事情都是有规律的,就像 《高效能人士的七个习惯》,优秀的程序员也有七个主要特征。这些特征有些是先天具备的,也就是天赋,但有些是在日常的编程工作中学习、进步、积累、总结获得的。每个程序员都想
程序员互动联盟
2018/03/16
6060
优秀程序员最喜欢做的七件事
做站6年多,多起多落后的成长经验
网站的运营离不开每个日日夜夜的坚持,要多去更新原创优质的文章。曾经我会自己最少每两天写一篇经验,不论字数多少自己会写一些,后面有一些人会投稿,也会去分享自己的知识。
半夜喝可乐
2022/10/30
4580
做站6年多,多起多落后的成长经验

相似问题

doGet()做多件事

13

Perl或做多件事

114

如何让Jbutton做多件事

16

onClick事件可做多件事

21

如何一次做M件事N

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文