贵的路由器是不是并发springmvc多线程并发能力特别厉害

java并发编程实践学习笔记 -
- ITeye技术网站
为啥需要并发:
个人英雄主义,单人独写xx软件的传奇,回味孤独英雄的寂寞。
系统运行也不是单个计算机或现在的单核cpu能够很好解决运行:系统需要
显示多机多cpu负载计算,为了响应当前的低碳生活,我们需要提高单机的计算能
力,更好的学习设计并发。
原子操作:原子为不可再分操作。
:可见关键字。
Synchronized:内部隐示锁
ReentrantLock:显示锁
ReentrantReadWriteLock:读写锁
final:创建后不变
jmm(java内存模型):
线程对所有变量的操作都是在工作内存中进行,线程之间无法相互直接访问,变量传递
均需要通过主存完成
线程 thread,runable常用方法
Interrupt():中断该线程,只是java语法上说要中断,具体实现需要业务上判断,
interrupted():判断是否中断,并且清除中断状态。
isInterrupted() :判断是否中断,不清除中断状态。
join() :等待该线程终止。
yield() :暂停执行当前线程,让出资源,让那个jvm的线程排程器
从可执行状态的线程中重新进行排程。也许该线程立马就又可以运行。
线程状态:new-》可运行-》排程器调度到运行-》等待,阻塞,睡眠-》运行完毕
被阻塞,不好中断,可通过关闭
sock.close()
并发可见关键字:violation
当多线程修改同一个数据时候,由于jmm限制,并不能立马让other
thread察觉。
硬件上实现:cpu硬件厂商提供了,各个cpu核心数据同步的关卡或栅栏。Java提供了这样的关键字机制:violation
会主动同步各个工作内存的数据到主内存中.
volatile字段的写操作happen-before后续的对同一个字段的读操作 :详见组后的happen-before规则。
系统线程:
//表示是否运行
private volatile boolean running =
long,double
读写分为2个32位的操作,声明为violation,jmm会规定为原子操作。是否会在64bit机器有限制
并发内部隐示锁:synchronized
特性:可见性:和
原子性:把一些不是原子操作组合成原子操作。
变量时候不需要做同步
但是一个对像需要内部的成员变量是否
当一个变量创建后要变化,需要在修改和获取时候都要加锁。不然遍历时可能
ConcurrentModificationException
被变化异常。
锁的持有者,谁是锁
public class Lock (
public synchronized
//业务运算.
public static
synchronized void fun2(){
//业务运算.
Lock a = new Lock();
Lock 对象也就是 a this,持有锁这调用的线程。
Lock.class,持有锁这调用的线程。
当线程持有了锁,当要进入需要相同锁的地方,可以进入。
synchronized 注意地方,缺点:
注意地方:
锁是用在多线程并发操作:当线程获取到了锁,调用了sleeep(休眠),线程不会释放资源,释放锁,
wait,线程会释放锁,当再次醒来后又要重新获取锁,需要在同步块。
notify:唤醒由于该条件等待的线程中的一个线程,需要在同步块。
notifyAll:唤醒所有。
一般就调用notifyAll:不然可能会造成某些线程假死,点背一直没有唤醒过他。需要在同步块。
当并发时候需要超时中断,不能实现。只能傻等到得到锁业务计算完毕退出。
显示锁:ReentrantLock:
语义上还有和
synchronized
完全相同,只是更多的功能
lock.lock();//
lock.unlock();//
释放锁,一定要和数据库连接一样,放到
由于和数据库连接一样,增加了危险性。
tryLock(long timeout, TimeUnit unit )
获取锁,不能返回
或一个时间后
不能获取返回。
ReentrantLock的wait,notify, notifyAll:
和synchronized
的wait,notify,notifyAll对应。
如果使用了ReentrantLock不能使用wait,notify,notifyAll方法。
//生产者消费者的生产环境,有限的数组,当数组满了后需要等待,消费者清除了数据后需要唤醒生产者线程。
ReentrantLock lock =
new ReentrantLock();
Condition full = lock.newCondition();
public void
put(String str){
if(isFull()){//是否已经满了
full.await();
public void get(){
//清除业务
full.notifyAll();
觉得更加有针对性的面向对象的编程。
数据库的类似问题:
脏读:第一个事物读取第二事物正在更新的数据,如果更新语句尚未完成,则第一个事物读取到的只是一个过程中的数据,而并非真实的结果。oracle的事物默认是:read
committed(提交读), 不会出现该问题
排他锁 :当变更数据,获取排他锁。
共享锁:查询获取共享锁,数据可以被多线程获取多个共享锁。获取了共享锁,再获取排他锁,需要等待共享锁结束。
Java解决数据库的类似问题
脏读:violation 关键字,可见性 如64bit的long,double。
:默认synchronized,ReentrantLock都是排他锁。
共享锁:实现类ReentrantReadWriteLock
,读写锁。场景:如我们的系统缓存常量数据一般都是读,很少的修改。
并发类介绍-----原子基本变量
Boolean:AtomicBoolean
Long:AtomicLong
引用:AtomicReference
链表中的大量数据需要包装,使用域的更新,AtomicReferenceFieldUpdater
案例:系统的访问次数,你肯定用一个long sum =
sum++方法,
从计算机的原子操作看是有3步 1.取出sum=0 2.加1 sum+1
3.把加的值放回到sum的区域
并发操作要讲究原子操作,我们一般使用 隐藏锁(synchronized)或显示锁(lock).
并发类介绍---CAS(compare
int old = 当前的值;
int new = old+1;
if(cas(old,new)){
*这一块是cpu指令实现原子,当替换成功返回true,否则false.
old,int new){
if(old==当前的值){//就是刚才的当前值,相同表示没有变化。
}else{//如果不相同表示已经被修改,那么就返回false,上面函数再调用cas..
return false
并发类介绍-----CAS与锁实现比较
锁的基本实现:A
线程获取锁,B获取锁等待,B释放锁唤醒所有等待线程,B获取锁
休眠等待需要操作系统的上下文切换,从用户态到系统态的切换,比较慢。
如果用cas的话,直接是jvm计算,当超级大并发,竞争异常激烈时候,cas就不一定比锁性能更好了,从这些业务算法上看,计算机的科学也是为了解决具体的事情,那些牛人想破脑袋想出来的。
并发类介绍-----缓存队列
数组(array)如:ArrayList
数组链相结合产物:HashM
为了并发操作更快速,使用更加简便设计。并发包java.util.concurrent
有限数组(array):ArrayBlockingQueue,
并发数组链map:ConcurrentHashMap。
当map很大时候,添加修改一次需要花费资源越来越大,可以设置成map中多个map,然后计算hash取模,加锁只加其中的一个小map。和数据库的分区类似。分离锁,只对一块数据中的一个区锁定。
并发类介绍----工具类
信号量,semaphore:如最多5个信号,业务运算时候需要先得到信号(acquire),在运算,结束后再release。有些像连接池一样,限制的计算量。
关卡,barrier,实现类:CyclicBarrier,执行完的线程在最后等待,等待最后的线程执行完,然后大家一起结束。
闭锁,latch,
CountDownLatch:等到所有资源集合完毕,等待的线程才能统一的都运行。
并发类介绍----线程池工具类
当创建很多运行时间很多的线程时候,jvm为分配资源的代价越来越高,线程池和数据库连接池类似
类下的静态方法,
newFixedThreadPool(int nThreads);--定长线程池。
newCachedThreadPool();
--根据系统需要创建,然后重用等方法。
缓慢的劣质化:
当用池后,你的线程不会无限的增长导致内存溢出,在你的控制下,你的系统负载很高时,用户提交的数据在你的jvm中被阻塞,后来又在操作系统层面缓存提交,操作系统不够后只能在路由器缓存,最后路由器就timeout给用户。
并发测试:
垃圾回收会影响你的测试报告,禁止测试时候执行垃圾回收:-verbose:gc
方法首先运行使用解释字节码方式执行,足够频繁时候会动态编译, 打印编译信息,-XX:+PrintCompilation
Jdk有client,server 多种运行模式,发布时候肯定运行于server模式下,该模式下更擅长优化死代码:-server
Amdahl定律:当计算资源必须使用串行化占比,然后计算出可提升性能的公式:
定制java 线程池大小:等待时间(WT)与服务时间(ST)之间的比例。如果我们将这一比例称之为 WT/ST,那么对于一个具有 N 个处理器的系统,需要设置大约
N*(1+WT/ST) 个线程来保持处理器得到充分利用
happen-before :
编译器为了提高多线程性能,会对代码进行重新排序,基于happen-before 规则才能确定代码执行的先后顺序。
1.单线程规则:同一个线程中,书写在前面的操作happen-before书写在后面的操作。这条规则是说,在单线程
中操作间happen-before关系完全是由源代码的顺序决定的。
2.对锁的unlock操作happen-before后续的对同一个锁的lock操作。这里的“后续”指的是时间上的先后关系,unlock操作发
生在退出同步块之后,lock操作发生在进入同步块之前。必须对同一个变量的 所有 读写同步,才能保证不读取到陈旧的数据,仅仅同步读或写是不够的 。
3.如果操作A happen-before操作B,操作B happen-before操作C,那么操作A
happen-before操作C。称为传递规则。
浏览: 7182 次
来自: 浙江实验五、多线程并发服务器编程_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
实验五、多线程并发服务器编程
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩8页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢君,已阅读到文档的结尾了呢~~
企业服务总线路由器的设计与实现设计,实现,服务,路 由器,和 实现,路由设计,路由器,企业务总线,企业路由器
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
企业服务总线路由器的设计与实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口有没有测试路由最多可连接多少客户端的软件!|拆机乐园 - 数码之家
查看完整版本: [--
赞助商链接
想模拟一下现实情况下,路由可以连接几台设备同时使用!
赞助商链接
无线论坛说过 带20台左右吧。
赞助商链接
压力测试吗?也得看连接数吧
试验过,TP的10台以内就慢的不行要重启
100m宽带, 但某个用户只用了两兆但把外网所有连接速用尽了,其他电脑照样不能访问网络
具体问题具体分析路由的带机量不是简单的1+1=2比如一台普通的100元的家用无线路由,4M带宽,带台式机,都看电影,可能3个人就卡的很了。同样一台普通的100元的家用无线路由,100M,带台式机,都看电影,可能5个人才会卡。以上,其实瓶颈在上传带宽上,但是对与用户来说,就是路由不行,网速不快。那么现在假设是10M光纤,上下行对等。普通的100元没有QOS限速功能,那么如果有一台电脑开着优酷加速器,土豆加速器,迅雷看看加速器,迅雷开机启动等等,那么基本上3个人还是会卡。现在还是假设10M光纤,用QOS限速的有线路由配AP,比如维盟945,925,飞鱼星,艾泰等等品牌,设置好入口带宽为10M,再设置好最大上传下载,基本上台式机20台轻飘飘,手机用户轻松上百。楼主应该想问的是家用路由的情况如果没人开台式机的情况下(因为台式机各种问题不可空,隐藏了的喜欢上传的软件比较多,特别是名字里面有加速器的,一般都是上传大户)手机用户,20个没啥问题。(手机都很纯洁,连接数也小)如果有人开台式机,那么看台式机维护得怎么样。没有太多上传的电脑相当于大概3,4个手机吧。
这个还是要看设备屌不屌的。。。原来用Ruckus的设备测试过。一个AP下挂70个人能够全部上网,至于网速保证到多少没测过,但是至少看看网页什么的没问题。motorola的也是50+以上没有任何问题。
一般百元以下的路由器并发连接数限制在了1000以内
我也想知道
:100m宽带, 但某个用户只用了两兆但把外网所有连接速用尽了,其他电脑照样不能访问网络&( 23:16)&并发连接数怎么看!
:具体问题具体分析路由的带机量不是简单的1+1=2比如一台普通的100元的家用无线路由,4M带宽,带台式机,都看电影,可能3个人就卡的很了。同样一台普通的100元的家用无线路由,100M,带台式机,都看电影,可能5个人才会卡。以上,其实瓶颈在上传带宽上,但是对与用户来说,就是路 ..&( 23:17)&我是想用家用的路由干专业的事,比如180台手机!
家用的15以下,连接用户多考虑专业的AP,否则严重影响体验。
太牛了,优科2825拨号(两台电脑,至少四部手机)+4530R桥接(两台电脑,两部手机,两台NAS,两个WIFI插座,还有两兄弟没接入网络)。长时间在线的就一台电脑和手机。NAS不跑迅雷远程还是妥妥的,跑迅雷远程会吃掉80%以上的带宽。没有配置QOS。
:具体问题具体分析路由的带机量不是简单的1+1=2比如一台普通的100元的家用无线路由,4M带宽,带台式机,都看电影,可能3个人就卡的很了。同样一台普通的100元的家用无线路由,100M,带台式机,都看电影,可能5个人才会卡。以上,其实瓶颈在上传带宽上,但是对与用户来说,就是路 .. ( 23:17) 今天又长知识了
:[表情]并发连接数怎么看!&( 23:28)&看不了,因为是运营商那边限制了,例如我们这光改20m 光猫默认就是路由模式,连接数只有几百,迅雷bt下载线程多了,速度长期800KB 左右,但单线程ie下载能达到近3MB/s我投诉后 电信改成桥接模式 连接数轻松上千,迅雷bt长期满速。
要看连接数量, 不过内存64m的router支持4000个连接没问题,现在128m都能支持30000个连接,所谓router死,可能是上传带宽被迅雷一类软件耗尽了, 仅仅看网页,能支持很多很多用户,
影响因素比较多,路由性能、网络带宽(尤其上行)、客户端数量、连接数等等。所以说还是以实际使用为准。
:100m宽带, 但某个用户只用了两兆但把外网所有连接速用尽了,其他电脑照样不能访问网络 ( 23:16) 是不是广播风暴了?
我用智达康的AP&&同时在线35人都还没出现什么问题都是有流量的哟
:[表情]我是想用家用的路由干专业的事,比如180台手机! ( 23:30) 家用路由QOS限速不行,一人下载,全家遭殃,家用带宽上传也很小。180台手机必须要专业AP,而且要3个。还有就是ip不够用的问题,家用路由不一定支持多子网段。
有智能QOS流控功能的路由器,我用的是磊科的
:一般百元以下的路由器并发连接数限制在了1000以内 ( 23:21) 啥是并发连接数啊,经常看到路由各种连接数
:要看连接数量, 不过内存64m的router支持4000个连接没问题,现在128m都能支持30000个连接,所谓router死,可能是上传带宽被迅雷一类软件耗尽了, 仅仅看网页,能支持很多很多用户, ( 00:52) 是不是内存越大,连接数就打大
:具体问题具体分析路由的带机量不是简单的1+1=2比如一台普通的100元的家用无线路由,4M带宽,带台式机,都看电影,可能3个人就卡的很了。同样一台普通的100元的家用无线路由,100M,带台式机,都看电影,可能5个人才会卡。以上,其实瓶颈在上传带宽上,但是对与用户来说,就是路 .. ( 23:17) 你好!请教你:水星MW4530R和TP-LINK WDRM双频千兆无线路由器,怎么样?或者神器腾达w3000r,500mw功率,带俩功放,是PA+LNA,自带SMA天线接口,硬改的150元。我不想花太多的钱,老家房子3层的。有推荐吗
:啥是并发连接数啊,经常看到路由各种连接数 ( 06:36) 并发连接数是指防火墙或代理服务器对其业务信息流的处理能力,是防火墙能够同时处理的点对点连接的最大数目,它反映出防火墙设备对多个连接的访问控制能力和连接状态跟踪能力,这个参数的大小直接影响到防火墙所能支持的最大信息点数。
:你好!请教你:水星MW4530R和TP-LINK WDRM双频千兆无线路由器,怎么样?或者神器腾达w3000r,500mw功率,带俩功放,是PA+LNA,自带SMA天线接口,硬改的150元。....... ( 07:27) 你要信号好就多装几个墙插面板形式的无线AP,保证每个房间都是满格信号
:你好!请教你:水星MW4530R和TP-LINK WDRM双频千兆无线路由器,怎么样?或者神器腾达w3000r,500mw功率,带俩功放,是PA+LNA,自带SMA天线接口,硬改的150元。....... ( 07:27) 三层最好是毎层拉一根网线放一个ap
:是不是广播风暴了?&( 03:23)&你可以试着找个带连接数限制功能路由器,限制连接数限制为100 同时开迅雷bt热门资源并限速 看能不能打开网页。绝非广播风暴
:[表情]我是想用家用的路由干专业的事,比如180台手机! ( 23:30) 几千元的无线路由器都带了这么多无线设备。这么多无线设备,最有效的办法是软路由 + 数台商用AP
你好,我每层还有一台电脑,请问无线AP可以拉网线出来吗
无线桥接吗?怕不稳定。有稳定的无线路由选择吗
:啥是并发连接数啊,经常看到路由各种连接数&( 06:36)&腾达的并发有4500我问过了!
:腾达的并发有4500我问过了! ( 13:19) 4500对于180个设备来说,太少太少了,即使是手机
:[表情]我是想用家用的路由干专业的事,比如180台手机! ( 23:30) 家用的路由干专业的事…厂家干什么滴?
:三层最好是毎层拉一根网线放一个ap ( 11:43) 可以的,当然可以的
:4500对于180个设备来说,太少太少了,即使是手机&( 14:09)&做限速每个40K,如果是磊科的还可以限并发数!
4530r后继有人吗???&&千兆lan 双频 ac&&无限最好1000+
:你好!请教你:水星MW4530R和TP-LINK WDRM双频千兆无线路由器,怎么样?或者神器腾达w3000r,500mw功率,带俩功放,是PA+LNA,自带SMA天线接口,硬改的150元。....... ( 07:27) 老房子三层,如果是农村的老房子,周边没有干扰,一般的大功率路由都能覆盖,哪怕信号不好,但是一般都能正常上网,城里面要覆盖三层,什么路由都难,一般用有线路由加多个AP来覆盖,才能实现无缝漫游。家内使用多个路由,手机链接好是不会自己选择信号最好的那个的,除非关闭打开一次手机WIFI。腾达水星TP的路由家用也行,不过都会偶尔死机啥的。覆盖范围太大,有信号特别弱的客户端链接,也比较容易造成无线路由死机或者整体网速变慢。2.4和5G双频的一般还是2.4比较靠谱。5G穿墙能力很弱,适合特别空旷的地区。BUFFALO WHR-HP-G300N 这个功率和稳定性都不错,路由不会出问题,但是看电影的人多了要卡这个事情是解决不了的。。如果家里上网的人特别多网速慢,也可以考虑上一个带QOS的路由飞鱼星VE750W。合理限速上网自然快。
谢谢你的详细解答!我还看中了AC55U这款
楼主你好,咨询你下,如果用家用路由器+专业ap,ap做成瘦ap,这个带机量是应该相当于路由的数量还是ap的
查看完整版本: [--
Powered by
Gzip enabled

我要回帖

更多关于 python 多线程并发 的文章

 

随机推荐