针对单线程服务器模型的特点,我们可以对其进行改进,使之能对多个客户端同时进行响应。最简单的改进即是使用多线程(或多进程)服务器模型,在应用层级别,我们一般采用多线程模式。多线程能让多个客户端同时请求,并能几乎同时对这些请求进行响应,而不用排队一个一个处理,能同时为多个客户端提供一问一答的服务。
图2-6-1-2 多线程阻塞服务器模型
多线程服务器模型核心就是利用多线程机制,为每个...
分类:
编程语言 时间:
2014-08-13 22:34:47
阅读次数:
311
单线程服务器模型是最简单的一个服务器模型,几乎我们所有程序员在刚开始接触网络编程(不管是B/S结构还是C/S结构)都是从这个简单的模型开始。这种模型只提供同时一个客户端访问,多个客户端访问必须要等到前一个客户端访问结束,一个一个排队,即提供一问一答服务。
图2-6-1-1 单线程阻塞服务器模型
图2-6-1-1展示了单线程阻塞服务器是怎样响应客户端的访问。首先,服务器必须...
分类:
编程语言 时间:
2014-08-12 22:14:14
阅读次数:
274
一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在java里边就是拿到某个同步对象的锁(一个对象只有一把锁);如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列中)。取到锁后,他就开始执行同步代码(被synchronized...
分类:
编程语言 时间:
2014-08-05 00:00:48
阅读次数:
448
关于多线程的状态--如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3890266.html"谢谢--线程共有6种状态:1.新建线程---使用new来新建一个线程2.运行线程---调用start()方法,线程处于运行或可运行状态3.线程阻塞---线程...
分类:
编程语言 时间:
2014-08-04 17:07:38
阅读次数:
273
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
NSURLConnection去加载一个URL请求时候有两种方式,一种是同步加载,一种是异步加载。
同步加载会阻塞当前的那个线程,如果将同步加载的代码放在主线程里去执行,那么就会阻塞主线程。
异步加载一种方式使用的是block,...
分类:
其他好文 时间:
2014-07-23 00:07:47
阅读次数:
368
Object 有提供 三个重构的wait、一个notify、一个notifAll 。 都是线程或者说多线程,相关的。Wait()方法,使当前获得指定对象锁的线程阻塞并释放锁。 ————我很好奇,为什么要阻塞,然后又释放呢?Notify、NotifyAll 使当前没有获得指定对象锁的线程唤醒。方法调用...
分类:
编程语言 时间:
2014-07-14 21:31:55
阅读次数:
337
本文承接上一篇文章《Java总结篇系列:Java多线程(一)》。四.Java多线程的阻塞状态与线程控制上文已经提到Java阻塞的几种具体类型。下面分别看下引起Java线程阻塞的主要方法。1.join()join —— 让一个线程等待另一个线程完成才继续执行。如A线程线程执行体中调用B线程的join(...
分类:
编程语言 时间:
2014-07-03 19:02:54
阅读次数:
332
指在一线程里面调用另一线程join方法时,表示将本线程阻塞直至另一线程终止时再执行 比如Java代码usingSystem;namespaceTestThreadJoin{classProgram{staticvoidMain(){System.Threading.Threadx=newSyste....
分类:
其他好文 时间:
2014-07-02 23:32:58
阅读次数:
257
转载:大关的博客Java多线程阻塞队列和并发集合本章主要探讨在多线程程序中与集合相关的内容。在多线程程序中,如果使用普通集合往往会造成数据错误,甚至造成程序崩溃。Java为多线程专门提供了特有的线程安全的集合类,通过下面的学习,您需要掌握这些集合的特点是什么,底层实现如何、在何时使用等问题。3.1 ...
分类:
编程语言 时间:
2014-06-22 13:38:04
阅读次数:
258