V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  mzer0  ›  全部回复第 2 页 / 共 18 页
回复总数  357
1  2  3  4  5  6  7  8  9  10 ... 18  
@XiaoxiaoPu

单线程仍然存在一致性问题, 我举个例子, 在 libmill 下, 如果你只有两个线程, 并且执行以下代码:

线程 A printf("%d",n); printf("%d",++n);
线程 B printf("%d", n); printf("%d", ++n);

你看到的输出很可能是: n(线程 A 输出), n(线程 B 输出), n+1(线程 A 输出), n+2(线程 B 输出).

这里你就会犯一个错误, 你认为 ++n 和 n 总是只差 1, 但实际上不是.
你写的加密部分过于惨不忍睹。。。不要自己写加密算法,除非你是读数学的。。。

你的项目我没看完(代码质量也很惨不忍睹。。。), 先草率地下一个结论。可能你一直都是在 VPS 上跑的, VPS 的核心数不多,因此用 libmill 之前没遇到问题。用 libmill 以后容易产生读写一致性问题,简单地来说要加锁,但是你的程序是单线程设计,除非再重构一次。。。。。。
2016-01-27 22:20:53 +08:00
回复了 kurtis 创建的主题 职场话题 “迟到扣钱, 加班免费,公司什么狗待遇”这类吐槽够了
主要还是看个人所从事的工作.

V2EX 以 web 工程师居多, 所以平常面对的大部分工作都是企业建站相关, 重复劳动居多, 并不属于创新及原创性劳动, 也没有产生独一无二的产品, 因此, 对"加班不付钱"这件事情比较敏感.

但如果是纯技术型公司, 以脑力劳动为主, 制造独一无二的产品, 那可能不会那么敏感. 对我来说, 看资料本身就是一种爱好, 用生活大爆炸里的谢耳朵的话来说, "换另一种工作对我而言就是娱乐".
2016-01-25 17:10:21 +08:00
回复了 a302800411 创建的主题 问与答 你们学生时代的第一个营利项目都是怎么开始的?
我见过很多编程经验并不是那么丰富的人, 他们往往想编写出某个通用的框架或是把自己的某个实验性作品变成通用的工具, 但最终都以失败告终. 甚至, 有些人才学了几个月的 python, 就幻想把自己的作品开源到 github 上, 让大家一起来完善. 如果你的编程经验不是那么丰富, 你最好多做一些实验性产品, 多造一些别人已经造过的轮子, 不要急于求成, 不然, 你很难写出通用的编程作品.

没有三到五年的编程经验, 写出的作品几乎是"不能用"的. 如果你使用的是 C/C++, 或者 Java, 而不是 Python, JS, 那这种差异会体现得非常明显. 例如, Java 新手几乎不懂得设计模式, 或者说经常滥用设计模式.
2016-01-24 00:30:53 +08:00
回复了 xcatliu 创建的主题 程序员 发现可以在 LeetCode 的机器上运行一些脚本
@xcatliu 能解释一下技术原理吗?
2016-01-20 16:24:11 +08:00
回复了 taozimiao 创建的主题 程序员 妹子求问,怎么样能够高逼格把礼物送到程序员手里?
......................
2016-01-20 16:15:55 +08:00
回复了 anonymoustian 创建的主题 Java 如何通俗地理解 中间件技术?
这种问题你不如上知乎搜一搜,或者在知乎上问。 StackOverflow 或者 Quora 也是很好的选择。

中间件一开始是为了解决一个很头疼的问题: Java 无法直接操纵内存,内存访问必须经过 JVM ( Java 虚拟机)。因此,直接操纵内存的部分最好由 C/C++来完成,再由 Java 调用 C/C++的函数。这样一来,就有了专门用 C/C++开发的中间件,供 Java 调用。

后来,在数据库的不断发展中,人们意识到直接操纵数据库并不是一个很好的做法,因为操纵数据库本质上是用共享内存(多进程,多 CPU 核心,甚至多 CPU 共享同一块内存)实现的,而共享内存会带来很多问题,例如,在老一些的 CPU 型号上,如果某个 CPU 核心发现要访问的内存不在自己的 L1 缓存上,也不在共享 L2 缓存上,那就会锁住寻址总线,并按照 L3->L2->L1 的顺序来传输数据,全程耗时大概为 300 ~ 500 纳秒,而一个加法指令的耗时才不到 2 纳秒。这样一来,如果多个进程共享一块内存,那就很可能导致寻址总线频繁被锁死,软件运行的效率非常非常低。中间件可以很大地改善这个问题:用专有的进程来访问数据库。这样,只有中间件的进程才能访问数据库,如果把中间件的进程与 CPU 核心进行绑定,那就能一劳永逸地解决总线锁死问题,因为其他线程永远不需要访问数据库。有些老外意识到了这个问题,并编写了相应的解决方案,命名为“中间件”。

因此,我们口中的“中间件”一般有两个含义,一个含义是数据库中间件,另一个含义类似于 SDK ,但无论如何,意思都是一样的:当前编程平台并不能有效地操作目标平台的数据,因此需要一个中间平台来改善访问。
2016-01-19 15:21:29 +08:00
回复了 ericwang0717 创建的主题 推广 送 10 本《第一本 Docker 书》能刷出存在感吗?——实现网
rp
2016-01-14 00:00:31 +08:00
回复了 xcatliu 创建的主题 旅行 过阵子要去土耳其玩了,你们有什么要说的吗?
真正的土耳其烤肉饭到底是什么味道? 留名, 楼主务必直播!
2016-01-10 03:26:54 +08:00
回复了 sheephe 创建的主题 分享发现 微博更新英文后,瞬间懵逼了 [doge]
哎, 这算什么......我在一家国内小银行的 ATM 取款, 选英文界面, 查询余额是"BALANCE INQ", 搞得我愣了一下, 这不是 balance inquery 嘛, 翻译界面的原来是程序员......正确写法是 balance, 没有 inq(inquery).
2016-01-10 01:11:45 +08:00
回复了 yksoft1 创建的主题 分享发现 IE6 这是要与日月同辉,与天地同寿的节奏
@yksoft1 请问你怎么解决 Thinapp 牌照的问题? 除了破解版 Thinapp, 我找不到个人使用 Thinapp 的手段, VMWare 只卖 Thinapp 的企业 License.
2016-01-09 13:42:19 +08:00
回复了 dai269619118 创建的主题 程序员 地图,根据一个点,判读这个点是否在某个多边形范围内
@mcone

我昨天的发言又失妥当(装逼失败),在此抱歉。我对 geo 算法的印象是,它只能求最小近邻问题,而求不了点在多边形内。如有错误请指出,我对 geo 不熟悉。
2016-01-09 00:14:11 +08:00
回复了 dai269619118 创建的主题 程序员 地图,根据一个点,判读这个点是否在某个多边形范围内
@MCVector 请问 marching cube. Volumetric rendering 是什么?
2016-01-09 00:06:08 +08:00
回复了 dai269619118 创建的主题 程序员 地图,根据一个点,判读这个点是否在某个多边形范围内
@jinwyp 不好意思......出大丑了, ray-casting 就是射线法......我确实误解了 pnpoly......别的 StackOverflow 问答上提到的是他写的 C 语言代码没有用 epsilon 比较, 因此有精度问题.
2016-01-08 23:52:39 +08:00
回复了 strahe 创建的主题 Linux 求推荐自带 Linux 的超级本
@strahe 我也有 MSI 的机器......MSI 现在出轻薄的机子了, 不过设计上比不过雷蛇.
2016-01-08 23:51:15 +08:00
回复了 dai269619118 创建的主题 程序员 地图,根据一个点,判读这个点是否在某个多边形范围内
@jinwyp 纠正一下我刚才说的话.

1. 你实现的 pnpoly 是错的, 一方面是除法导致的精度问题(你应该把除法变成乘法), 一方面是你公式弄错了(如果我没误解 pnpoly 理论).

2. 我刚才读了一下你引用的参考链接(已读完), pnpoly 只能用来判断某些多边形(例如凸边形), StackOverflow 的问题下面已经有人提到了这个问题, 那个老外水平不咋地, StackOverflow 别的问答里也提到他在网页上写的 C 代码是错的(除法精度问题)......
2016-01-08 23:17:52 +08:00
回复了 dai269619118 创建的主题 程序员 地图,根据一个点,判读这个点是否在某个多边形范围内
@feng32 你发的链接打不开(翻墙也打不开, 美国 ip), 你说的 Grid Method 是什么?

@jinwyp 很遗憾, 你的实现是错的, 你计算的是射线, 而不是线段.
1  2  3  4  5  6  7  8  9  10 ... 18  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3125 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 13:44 · PVG 21:44 · LAX 05:44 · JFK 08:44
Developed with CodeLauncher
♥ Do have faith in what you're doing.