之的作用是什么?

管泽熙管泽熙最佳答案最佳答案

在单线程的程序里,使用原子操作能保证顺序执行——只有加锁和解锁两个操作步骤,因为操作系统内核实现时,这些步骤都是原子的(Linux 3.6之后的版本都已经实现了操作系统的自锁功能);而在多线程的程序里,由于加了内存屏障,操作系统仍然可以保证各从线程对变量的操作是原子的,只不过每次操作之间的序并非必然为递增的。

而CAS操作则是基于上面的这些特性来实现的:只要两次操作的上下文(包括变量值和自己保存的标识)保持一致,就能保证是原子的,否则要么不更新,要么全部刷新回原来的值。因此CAS比原生C语言里的互斥锁效率更高,在多线程环境下更加合适。 而ABA问题则是在上述基础上更进一步的问题——这个问题出现的场景一般是当变量被多个线程同时修改但只有一个线程能够成功写入(也就是所谓的写冲突)的情况下。为了避免这种问题,CAS需要添加额外的操作——先读出变量的值,如果与原值不一致,说明之前有其它线程写了进去,这样第一次CAS操作就会失败,之后重新尝试直到成功或者达到超时限制。

这里重试的过程本身也是原子和串行的,因此在Java等不支持并行编程的语言里,只能一次一次的轮询直至达成目的。而在C/C++这类支持并发编程的语言里,则可以借助临界区、内存屏障以及CPU的硬中断来实现。当然,这种循环重试的结构本身就是有代价的,它会在循环内阻塞住当前线程,导致时间片被浪费以至于整个进程的效率下降。 在现代的编译器里,对于整数类型(int、short之类)的操作系统内部都会进行优化从而无需进行ABA检查,所以这种结构在实际应用中并不会遇到。但对于字符串这样的复合数据类型,情况就有所不同了。

西蓓雯西蓓雯优质答主

古汉语中“之”的意义和用法主要有以下几种:

(1)代词,“之”可以充当定语,也可充当宾语,“之”用作代词可以指代人,可指代事,也可指代物。用代人时,用于第三人称,相当于现代汉语的“他(她)”、“他们”。例如“愿伯具言臣之不敢倍德也”,“之”指代项羽。例如“臣从其计,大王亦幸赦臣”,“其”指代郦食其。“之”用于代物时,相当于现代汉语的“它”、“它们”。例如“故远人不服,则修文德以来之”。用于代事,例:以 子 之 道,移 其 家 不 可 也。

(2)结构助词,有两种用途:一是用于定语和中心词之间,相当于现代汉语的“的”,例如“石之铿然有声者,所在皆是也”,“石”和“铿然有声者”之间的“之”就相当于“的”的意思。二是用于主谓语之间,起取消句子独立性的作用,不译,例如“勾践载稻与脂于舟以行,行数十里,国之孺女儿请从”,“国之孺女儿”的“之”是用于主谓语之间,不译。

(3)音节助词,为了使音节协调时所用的“之”,相当于一个衬音,可不译,例如“当余之从师也”,“之”用于“余”和“从师”之间,并不是主谓语的关系,故不译。又例:“公将鼓之”。

我来回答
请发表正能量的言论,文明评论!