V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wevsty  ›  全部回复第 20 页 / 共 72 页
回复总数  1440
1 ... 16  17  18  19  20  21  22  23  24  25 ... 72  
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 了。
电源跳闸,线材起火燃烧,短路了吧?
电源适配器如果没有人为损坏的痕迹可以找联想更换,至于其他的,我觉得还是别想了。
2018-10-08 10:14:26 +08:00
回复了 YamatoRyou 创建的主题 Telegram 普通用户角度关于 Telegram 的几点疑惑.
1、不明白你口中的蜜罐指什么。
Telegram 保证的是无论你用什么代理,你的聊天,登陆数据是加密的不会被任何第三方获取到。但是显然,作为代理可以知道是哪个 IP 登录了 Telegram。
2、Telegram 的服务条款约定,收到请求后在特定情况下可以向有关部门透露手机号。虽然这方面有透明度报告,而且目前这一条款目前没有使用过。
3、你这个描述很变扭,不清楚你到底想知道的什么。
4、国产手机安装后无法开机自启多半是国产手机 ROM 里面内置的自启控制导致的。
2018-10-04 15:49:07 +08:00
回复了 Wobuguan 创建的主题 随想 陪同学去数码城买笔记本电脑
@Wobuguan
那价格倒是差不多。
嘛,注意验货就行了。
2018-10-04 15:39:01 +08:00
回复了 Wobuguan 创建的主题 随想 陪同学去数码城买笔记本电脑
很多年不去电脑城了,坑太多。
淘宝搜了一下 DELL G7 这个配置的价格大多数都在 8000 以上。
一般来说,实体店不太可能比淘宝低很多的。
不过如果是淘宝付款,实体店取货,注意验货就行了。
2018-10-04 15:31:30 +08:00
回复了 cest 创建的主题 Windows win10pro 怎麽关闭 meltdown/spectre 保护?
2018-10-04 15:21:35 +08:00
回复了 u14e 创建的主题 硬件 晒一下你们组装的电脑配置
E3-1230V3
ASROCK Z87
16G DDR3
AMD Radeon R7 260X
三星 SSD 960 EVO 250G
其他略。。。
2018-10-04 15:07:29 +08:00
回复了 cest 创建的主题 Windows win10pro 怎麽关闭 meltdown/spectre 保护?
有办法的,注册表设置一下就行。

https://www.v2ex.com/t/425065
2018-10-04 15:02:46 +08:00
回复了 0918su 创建的主题 问与答 Win10 1809 的更新, ltsb 改名成 ltsc 啦??
LTSB 是不会自动更新大版本的。
如果想升级 LTSC,需要自己用 ISO 升级或者重新安装。
(建议直接重新安装,否则可能会出现各种奇奇怪怪的问题)
1 ... 16  17  18  19  20  21  22  23  24  25 ... 72  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2719 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 05:49 · PVG 13:49 · LAX 21:49 · JFK 00:49
Developed with CodeLauncher
♥ Do have faith in what you're doing.