V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wevsty  ›  全部回复第 19 页 / 共 72 页
回复总数  1431
1 ... 15  16  17  18  19  20  21  22  23  24 ... 72  
2018-11-14 09:23:17 +08:00
回复了 ddid 创建的主题 程序员 探讨一下互联网通信安全技术
显然楼主对安全通信有什么误解。先明确概念,两点之间能保证在一定条件下不能被人窃取通信内容的通信就是安全通信。

1、HTTPS 或者 TLS 是很早就有的东西,只不过以前大家并不重视,但是最近 N 年以来,基本已经是标配。
2、答案是不能。GFW 对通信的影响主要在于阻断和干扰通信,而不是窃取通信内容。
3、有这种可能性。
4、和 2 其实是类似的问题。
举个例子:你家只有一条路能和外部连接,人家堵死你家的出路不让你出去你没有任何办法解决这个问题。
2018-11-14 00:11:15 +08:00
回复了 wutiantong 创建的主题 C msvc 到现在都没有正确实现 if constexpr
@wutiantong
反正从现象看 MSVC 对 if constexpr 的处理上显然是要求即使被丢弃的部分也不会简单的直接跳过的。

我个人是支持丢弃编译期就可以确定不会执行的内容的,不过这个问题可能是编译器编译逻辑或者对标准解释的问题。不太清楚 MS 是怎么考虑的,不过可以尝试给 MS 提交一下,也许下个版本他们就修过来或者给你一个解释也说不定。
2018-11-13 22:18:27 +08:00
回复了 kangkang 创建的主题 Twitter 迫于被微博列为垃圾用户,求互 fo 一波 Twitter
然而一旦暴露了 ID,查水表一查一个准,更加没法畅所欲言了。
2018-11-13 21:02:52 +08:00
回复了 wutiantong 创建的主题 C msvc 到现在都没有正确实现 if constexpr
稍微改了一下,在 MSVC 15.8 上加 /std:c++17 参数以后可以编译了。
(貌似也仅有这个版本的 MSVC 才能编译)
(当然 GCC 也可以通过编译)
代码:
https://godbolt.org/z/9BuPJL

原本的代码编译过不去一方面由于 MSVC 实现的原因,另一方面这种写法本身的移植性就比较玄学。

以下是不靠谱也不负责任的瞎掰:
调用 get<0>()的时候因为 index 模板的特化 index<0>本身并没有 get 模板(或者叫成员函数),大概 MSVC 并不认为这样做是合法的写法所以就扔了编译错误出来。
if constexpr 虽然是编译期决定的,但是翻了一下规定只说了 return 的返回值不参加类型推导,但是好像并没有说如果 return 的表达式本身不合法应该怎么做,那么这里就是一个未定义的灰色地带了。
2018-11-08 22:35:04 +08:00
回复了 marcushbs 创建的主题 程序员 vmware 的 vmnat.exe 有个 http 长连接,干啥用的呢?
vmnat 就是转换虚拟机内网络请求的程序。
http 本身是不带连接状态的,可能是虚拟机内部用 http 做了什么长连接关机之后连接没有切断就保留下来了。
2018-11-08 22:21:32 +08:00
回复了 changnet 创建的主题 全球工单系统 ubuntu 居然不能安全删除移动硬盘
@gmaso
固态硬盘哪来坏道这种概念。。。

主控应该尽可能的避免产生坏块,但是闪存出现坏块其实是无法避免的。出现坏快要不然是闪存体质(白片,废片,降级片)或者时间的问题(拆机片,二手),要不然是单纯的运气不好,又或者是主控算法方面的问题。
不管怎么样,操作系统是不应该接这个锅的。
2018-11-05 22:05:40 +08:00
回复了 freed 创建的主题 问与答 台式电脑的灵异问题,有没有大佬帮鉴定下问题所在?
我觉得可能是以前的电源导致主板的某个部件损坏了。
2018-10-31 19:07:13 +08:00
回复了 Jimmyluo6 创建的主题 问与答 新用户是不是一用苹果的产品,就会越套越牢?
没有迁不回去,只有可能是你不想迁回去罢了
2018-10-27 19:18:19 +08:00
回复了 XuanFei990 创建的主题 C 问一个简单的 C++关于构造函数和 new 表达式的问题
new CB();调用了第一次构造函数返回的类型是 CB*,所有的指针都可以转换为 void*类型,所以编译器帮你使用了 CB 的构造函数,把 new CB()得到的指针作为参数传递进去了,所以 b1 这个对象也不是 new 出来的,你当然也不能对他 delete。这个是隐性的数据类型转换导致的结果。
2018-10-26 14:24:07 +08:00
回复了 codechaser 创建的主题 C 为什么这个输入字母会一直输出一大串 0?
scanf 的返回值并不是输入的内容。
2018-10-18 22:04:09 +08:00
回复了 leebs 创建的主题 C 一个线程的小程序
@xylophone21

0、线程 A 被优先调度是从现象的出来的结论,我们在讨论的是为什么会出现这样的现象。如果线程是完全无序执行(无任何同步手段)的,我认为出现的结果将会乱,应该不算偏题太远。

1、你提出的问题是函数返回了以后保证上次调用的线程被优先调度,这代码在这个意义上并没有问题。
优雅的实现是很主观的问题,不同的目的下一般是需要取舍的。
不过既然提到了那还是转头再来看看 printf 这个函数的需求。
1.1、printf 是一个同步 I/O 函数,目的是格式化信息输出到 stdout,stdout 在一个进程里只有一个,所以不可避免的存在写入冲突,如果实现者想保证 printf 尽可能的输出正确的结果而不是输出一堆无规律的东西的话,锁是必要的。
1.2、printf 作为一个 I/O 函数,运行速度本身就不能认为是一个常数(因为取决于 I/O 性能),并且一般来说 I/O 的操作相对是比较慢的,并不是一个需要追求高性能的场合。
如果一定要强调速度,那么内核在不同的线程之间来回调度的开销显然比让一个线程先执行完的开销大,实现平均调度让内核在多线程之间来回切换反而是拖慢速度。
printf 并不需要刻意的让调用的线程公平的抢占 stdout 这个资源,所以没有必要实现顺序锁,所以互斥锁是很自然的选择。

至于最后导致的某个线程优先被调用的结果,这个结果本身不是必要的,可能只是实现上导致的副产品。

p.s 是回复上面提到的线程安全问题,所以我不解释了。
2018-10-18 17:04:13 +08:00
回复了 Newyorkcity 创建的主题 问与答 对于 arr[],&arr 与 arr 的%p 居然是相同的,该怎么理解?
@Newyorkcity
顺便说一句
指针类型不一定是 8 byte,这取决于机器的指令集。对于 X86 指针类型是 4 byte,对于 X64 来说才是 8 byte,不同的指令集对应的大小是不一定一样的。
2018-10-18 16:51:34 +08:00
回复了 Newyorkcity 创建的主题 问与答 对于 arr[],&arr 与 arr 的%p 居然是相同的,该怎么理解?
@Newyorkcity

1、不用假定,内存里面的每个 byte 都一定有地址对应。
2、在你的例子里,char s[]作为数组 s 本身可以理解为只有编译器知道的一个地址的别名,这个地址本身不占用内存空间,只有数组里面储存的内容才占用空间。
2018-10-18 13:05:17 +08:00
回复了 leebs 创建的主题 C 一个线程的小程序
@xylophone21

void thread()

{

while(thread_lock.try_lock() == false)

{

sleep_ms(10);

}

//do something

thread_lock.unlock();

}

如果 thread 函数被多线程同时循环调用,第一个进入 thread 函数的线程显然可以更优先的被调度。
当然,这也只是一种实现方法而已,线程锁也完全可以根据线程 id 去优先调度,技术上完全可以实现。

printf 实际上就是向 stdout 写入数据,没有锁的情况下线程调动应该是完全无序的甚至不能保证输出一行不被打断,针对 LZ 提出的现象,锁这个解释其实是合理的。

p.s
MT-Safe 只代表,多线程的情况下这个函数可以被安全的调用,并不代表这个函数本身是原子化的或者不可重入的,因此这个函数本身或者其他函数可以干扰 MT-Safe 函数的行为。
https://www.gnu.org/software/libc/manual/html_node/POSIX-Safety-Concepts.html
原文写的很清楚,Being MT-Safe does not imply a function is atomic, nor that it uses any of the memory synchronization mechanisms POSIX exposes to users. It is even possible that calling MT-Safe functions in sequence does not yield an MT-Safe combination.
2018-10-17 23:51:36 +08:00
回复了 cooioobb 创建的主题 浏览器 除了 Chrome。还有什么浏览器推荐
IE,Edge,firefox
你看着办咯
2018-10-17 19:47:30 +08:00
回复了 980502757 创建的主题 C 请教! printf("%d", printf("%d", printf("%d", 12)))如何输出。
入栈顺序是没有标准的,可以从前往后,也可以从后往前,这取决于编译器怎么处理。
2018-10-17 19:45:25 +08:00
回复了 leebs 创建的主题 C 一个线程的小程序
估计是 printf 内部的实现存在锁。
所以线程 2 在 counter 自增完毕进入 printf 的时候就停住了,下一次循环就变 12 了。
1 ... 15  16  17  18  19  20  21  22  23  24 ... 72  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1099 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 19:47 · PVG 03:47 · LAX 12:47 · JFK 15:47
Developed with CodeLauncher
♥ Do have faith in what you're doing.