首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

经典面试题-两个线程交替打印奇数偶数

前提 今天下班时候同事聊天偶然听到面试题“两个线程交替打印奇数偶数”的实现,这里做一个复盘。 复盘 场景一:线程A打印奇数,线程B打印偶数,线程A线程B交替打印,使用对象监视器实现。...场景二:线程A打印奇数,线程B打印偶数,线程A线程B交替打印,使用JDK提供的并发类库实现。...这两个场景,场景一是一种比较古老的同步方式,本质由JVM实现;场景二是JDK1.5引入JUC包之后简化了并发编程的前提下的更简便的实现。下面针对两个场景做对应的实现。...场景一 场景一,线程A线程B交替打印奇数偶数,使用对象监视器实现,通俗来说:线程A或线程B只要有一者竞争锁成功,就打印++i,通知其他线程从等待集合释放,然后自身线程加入等待集合并且释放锁即可。...,然后thread-1打印偶数,这个同步器框架的等待队列以及同步队列的竞争有关。

3.5K31

经典面试题-两个线程交替打印奇数偶数

前提 今天下班时候同事聊天偶然听到面试题“两个线程交替打印奇数偶数”的实现,这里做一个复盘。 复盘 场景一:线程A打印奇数,线程B打印偶数,线程A线程B交替打印,使用对象监视器实现。...场景二:线程A打印奇数,线程B打印偶数,线程A线程B交替打印,使用JDK提供的并发类库实现。...这两个场景,场景一是一种比较古老的同步方式,本质由JVM实现;场景二是JDK1.5引入JUC包之后简化了并发编程的前提下的更简便的实现。下面针对两个场景做对应的实现。...场景一 场景一,线程A线程B交替打印奇数偶数,使用对象监视器实现,通俗来说:线程A或线程B只要有一者竞争锁成功,就打印++i,通知其他线程从等待集合释放,然后自身线程加入等待集合并且释放锁即可。...,然后thread-1打印偶数,这个同步器框架的等待队列以及同步队列的竞争有关。

61020

只有使用 ACL 的 通配符掩码 才可以使用一条语句就可以 匹配出,奇数vlan的网段 偶数vlan的网段,odd 奇数, even 偶数

只有使用 ACL 的 通配符掩码 才可以使用一条语句就可以 匹配出,奇数vlan的网段 偶数vlan的网段,odd 奇数, even 偶数!...码要为 255, 就是每个网段的任意的主机, access-list 2 permit 192.168.0.0 0.0.254.255 这条语句就是匹配的是偶数vlan的 网段 ,–是数据层面...码要为 255, 就是每个网段的任意的主机, 利用访问列表的 反掩码 来匹配特定位为10...来区分奇数偶数, 分析: 第三网段为奇数第三网段为偶数,有一个很明显的区分就是 最后一位为1就为奇数,为0就是偶数, 00000000 分别对应的是 二进制换位点分十进制..., 为 128 64 32 16 8 4 2 1 这8位, 只有最后一位是奇数,所以只要最后一位为1 ,前面7位不管是0 还是1 加起来都是 奇数, 反之亦然。

86620

利用宏,实现将一个整数的二进制位的奇数偶数位交换

,那么如何利用宏,实现将一个整数的二进制位的奇数偶数位交换?...二、二进制操作符 要实现将一个整数的二进制位的奇数偶数位交换,我们可以先把二进制数的奇数 偶数位上的每一个信息提取出来 这里我们了解一个二进制操作符: 位操作符 & | & | 都是对二进制形式进行操作...: 偶数位信息:num & aaaaaaaa; 奇数位信息:num & 55555555; 这样我们就得到了整数的奇数位信息 偶数位信息。...但是我们要进行交换,所以奇数偶数位的位置也应该交换 这时候我们需要了解移位操作符: 移位操作符 >> << 移位操作符也是对 二进制格式 进行操作 >> 表示是 对整形的二进制位向右边移动n...,让偶数位信息右移一位 因为补位补的是 0 ,0不会影响数据信息 三、代码总结: #include //写一个宏,可以将一个整数的二进制位的奇数偶数位交换。

7410
领券