V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  nybux  ›  全部回复第 13 页 / 共 15 页
回复总数  291
1 ... 5  6  7  8  9  10  11  12  13  14 ... 15  
2013-07-25 16:30:43 +08:00
回复了 timepast 创建的主题 Java 关于并发脏数据的问题
没必要,悲观锁是肯定可以保证没有冲突的。但是会降低性能,因为这条记录被锁住了,其他人没法再读取这条记录了。
乐观锁通过一定的算法保证当前库里面的记录是自己前面读出来的记录,比如加个版本号字段或者加个time字段,或者把所以字段都读出来,然后update的时候where都加上。
2013-07-25 15:28:51 +08:00
回复了 timepast 创建的主题 Java 关于并发脏数据的问题
乐观,自己判断
悲观,数据库锁定
2013-07-25 08:33:41 +08:00
回复了 thinkxen 创建的主题 Linux 向/tmp目录写入文件测试速度有问题
两个目录的磁盘类型一样嘛?
2013-07-24 17:10:33 +08:00
回复了 54dev 创建的主题 问与答 数据库里的数据导不出来了,是不是数据损坏了?
看看mysql的错误日志
2013-07-24 16:59:39 +08:00
回复了 jackyzy823 创建的主题 .NET 请教一个C#的问题。。
c#做串口,不知道你用的是不是SerialPort,有个DataReceived的事件,不用线程的
2013-07-23 07:50:14 +08:00
回复了 2656618087 创建的主题 程序员 web在线聊天室该怎么做呢?
我的测试程序是用nodejs写的,不过感觉性能不是很好

#!/usr/bin/node
var net = require('net');
var count = 0;
var maxUser = 5000;

function sendRequest(client, i) {
client.write('GET /poll?uid=-' + i.toString() + ' HTTP/1.1\r\nCookie: ASP.NET_SessionId=' + i.toString() + '\r\n\r\n')
}

function poll(uid) {
var client = new net.Socket();
client.connect(8080, '127.0.0.1', function() {
setTimeout(function(){
sendRequest(client, uid);
}, Math.random() * 3000);
});
client.on('data', function(data) {
count++;
msg = data.toString().split('\r\n\r\n')[1];
if (msg != "") {
//console.log('recv,' + uid + ':{' + msg + '}');
}
setTimeout(function(){
sendRequest(client, uid);
}, Math.random() * 3000);
});
client.on('close', function() {
console.log(uid.toString() + ':close!!!!');
client = new net.Socket();
poll(uid);
})
}

setInterval(function() {
console.log('msg count:' + count);
}, 5000);

for (i = 1000; i < 1000 + maxUser; ++i) {
poll(i)
}
2013-07-22 16:40:30 +08:00
回复了 skk 创建的主题 上海 不废话,求服务器端开发工程师,上海漕河泾初创企业
估计往死了加班,所以不用租房和谈恋爱
2013-07-22 12:01:31 +08:00
回复了 2656618087 创建的主题 程序员 web在线聊天室该怎么做呢?
并发问题是程序逻辑写的不合理,要好好再设计一下。这类程序的开发,我一般都是2线程的,一个线程负责网络收发,一个线程负责业务逻辑。所以在业务这块,我是单线程的,一般来说仅仅是聊天转发,一个cpu core足够处理了,而且也没有锁的问题。
参考资料:http://www.eecs.harvard.edu/~mdw/proj/seda/
2013-07-22 11:24:30 +08:00
回复了 2656618087 创建的主题 程序员 web在线聊天室该怎么做呢?
你的程序里面要存储一张表,就是对应的用户id和asynccontext的表。
当要给指定用户发消息的时候,就通过用户id把对应的asynccontext对象取出来,返回发送消息。
我用golang写的。用的是channel阻塞。原理和asyncservlet不太一样。
2013-07-22 11:05:48 +08:00
回复了 2656618087 创建的主题 程序员 web在线聊天室该怎么做呢?
我实现的是http长连接推送的,用golang实现的,由于测试程序的性能问题,测试了2万个并发没有问题。
2013-07-20 17:05:36 +08:00
回复了 mantianyu 创建的主题 问与答 comet 技术所需的长连接是如何实现的?
php和普通的servlet都是一个请求要占用一个线程或进程,long polling需要在等待条件的时候释放掉占用的线程或进程。所以以目前php的方式就算实现,也无法支撑多少用户。
long polling是从http层面看到的东西,comet和asyncservlet是一种实现。websocket需要浏览器额外支持。
采用什么方案实现longpolling,要根据你的用户量来决定。
我觉得golang是最佳的方案。在一台普通pc上可以支持上万用户。
接着是netty,async servlet,nodejs都是可选方案。我用asyncservlet测试2万用户基本已经没法用了。
2013-07-20 10:47:14 +08:00
回复了 mantianyu 创建的主题 问与答 comet 技术所需的长连接是如何实现的?
可以搜索一下servlet 3.0的asyncservlet
2013-07-19 22:10:46 +08:00
回复了 Aiurss 创建的主题 问与答 不同网站用不同等级的密码是为什么
国内网站的密码天晓得是怎么存储的,而且政府如果要,他们肯定会给的。所以存放在国内网站的资料只能做备份,要抱有这个密码谁都能看的到的思想准备。
外国网站,没有在国内开分号的,那可信度稍晚好点,不过也时不时爆出有密码库泄漏的问题。
google嘛,我最信任了,所有重要的东西都存放在上面,这个挂了,我人也挂了。所以,这个密码是唯一的。
2013-07-19 22:03:35 +08:00
回复了 Aiurss 创建的主题 问与答 不同网站用不同等级的密码是为什么
@yfdyh000 都被你说啦
2013-07-19 08:59:49 +08:00
回复了 Sdhjt 创建的主题 问与答 请问不用https登录V2EX,密码有被截获的风险吗?
密码要分等级呀
我一般最高级的只有google
第二级是一些外国网站
第三级都是国内的网站
2013-07-18 21:30:03 +08:00
回复了 kevinroot 创建的主题 分享发现 clash of clans在公司连不上
你们公司屏蔽了
2013-07-17 15:40:00 +08:00
回复了 ratatata 创建的主题 Python 为什么要在 threading.Thread 的 run 中定义 “while True:”?
@GordianZ 说的是输入法
2013-07-17 15:39:44 +08:00
回复了 ratatata 创建的主题 Python 为什么要在 threading.Thread 的 run 中定义 “while True:”?
@GordianZ 这个联想太奇妙了
2013-07-17 14:36:29 +08:00
回复了 ratatata 创建的主题 Python 为什么要在 threading.Thread 的 run 中定义 “while True:”?
举个例子吧:比如你后台每隔5分钟要扫描一些东西。你可以每隔5分钟启动一个线程,做完后结束。但是更稳妥的方法是启动一个线程,让她一直干。扫描完一次后让他睡5分钟。
这个也就是你看到的
while True:
work()
这种模式
2013-07-16 19:43:26 +08:00
回复了 hlxwell 创建的主题 分享创造 上班族学习外语最佳神器 MemoryForcer。求下载使用支持。
我都没用过呢,只是看着觉得很不错,没有mac,只能期待chrome
1 ... 5  6  7  8  9  10  11  12  13  14 ... 15  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   873 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 21:57 · PVG 05:57 · LAX 13:57 · JFK 16:57
Developed with CodeLauncher
♥ Do have faith in what you're doing.