如果一个服务器只能为两个用户提供服务器,那就真的是太渣了。很多时候,聊天的客户都会大于两个。因此需要提高并发量。
在Java中使用多线程还是很方便的。我在这个服务器程序使用的是实现Runnable接口的方法来定义自己的多线程操作。通过重写run方法,来实现自己的多线程操作。
每个线程都会有一个client成员变量,这个成员变量用来记录客户端的Socket。然后,每个线程都会使用...
分类:
编程语言 时间:
2016-05-12 21:34:08
阅读次数:
167
android培训——我的java笔记,期待与您交流!线程同步
多线程共享数据
在多线程操作中, 多个线程有可能同时处理同一个资源, 这就是多线程中的共享数据。 举个不太恰当的例子简单理解一下,图中是小新家的厕所茅坑,但是家里只有一个那这就是一个“资源”,那么家里的所有人都共享这同一个“资源”,也就是所谓的多线程共享数据
可以明显的看出多线程共享数据带来的问题,就是会造成数据的不确定性!就好...
分类:
编程语言 时间:
2016-05-12 13:23:14
阅读次数:
143
标签: 多线程任务nullstringhtml工作 2012-06-29 23:00 1276人阅读 评论(0) 收藏 举报 标签: 多线程任务nullstringhtml工作 2012-06-29 23:00 1276人阅读 评论(0) 收藏 举报 分类: C/C++/C#/dotnet(126) ...
分类:
编程语言 时间:
2016-05-07 22:06:31
阅读次数:
450
线程的状态:1.线程也有固定的操作状态:创建状态:准备好了一个多线程的对象(也就是new出来一个Thread对象)就绪状态:调用了start()方法,等待CPU进行调度(等待CPU分配资源的状态)运行状态:执行run()方法(当CPU分配好资源或CPU已经进行调度,此时处于运行状态)阻塞状态:..
分类:
编程语言 时间:
2016-05-01 01:13:58
阅读次数:
277
共享性 多线程操作同一个数据,产生线程安全问题 新建一个类ShareData 设计一个int 型的成员变量count 设计一个成员方法addCount(),把count变量++ 在main函数中开启多个线程操作这个成员变量,在main函数里 获取ShareData对象,new 出来 使用for循环1 ...
分类:
编程语言 时间:
2016-04-25 17:46:09
阅读次数:
190
GCD的队列可以分为2大类型,分别为串行队列和并发队列
串行队列(Serial
Dispatch Queue):
一次只调度一个任务,队列中的任务一个接着一个地执行(一个任务执行完毕后,再执行下一个任务)
创建一个队列
dispatch_queue_t q
= dispatch_queue_create(const char *label, ...
分类:
移动开发 时间:
2016-04-16 19:03:34
阅读次数:
174
有这么一个需要,分别执行2个耗时的异步操作,等2个异步操作都执行完毕后在回到主线程执行操作。如果想要快速高效地实现这个需求,可以考虑使用调度组。
调度组的创建代码如下:
[objc] view
plain copy
dispatch_group_t group = dispatch_group_create();
往调度组里面添加任...
分类:
移动开发 时间:
2016-04-16 19:02:47
阅读次数:
206
GCD全称Grand Central Dispatch,可译为“大派发中枢调度器”,以纯C语言写成,提供了许多非常强大的函数。GCD是苹果公司为多核的并行运算提出的解决方案,它可以自动利用更多的CPU内核来参与运算,会自动管理线程的生命周(创建线程、调度任务、销毁线程),而程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码!
GCD中有两个核心概念,一是任务,二是队列。...
分类:
移动开发 时间:
2016-04-16 19:02:30
阅读次数:
168
GCD默认已经提供了全局的并发队列供整个应用使用,所以可以不用手动创建。
创建全局队列的函数为
[objc] view
plain copy
dispatch_queue_t q = dispatch_get_global_queue(long identifier, unsigned long flags)
参...
分类:
移动开发 时间:
2016-04-16 19:01:58
阅读次数:
245
NSOperation可以调用start方法来执行任务,但默认是同步执行的,如果将NSOperation添加到 NSOperationQueue(操作队列)中,系统会自动异步执行队列中的操作。
NSOperationQueue中可以对操作进行取消,暂停和恢复
取消函数为:
[objc] view
plain copy
...
分类:
移动开发 时间:
2016-04-16 19:00:22
阅读次数:
187