楼主: dlmxv90851
1493 0

Hadoop 系统入门+核心精讲内附资料文档 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

96%

还不是VIP/贵宾

-

威望
0
论坛币
266 个
通用积分
55.0568
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1668 点
帖子
98
精华
0
在线时间
69 小时
注册时间
2020-4-17
最后登录
2024-9-19

楼主
dlmxv90851 发表于 2022-8-14 16:46:51 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
Hadoop 系统入门+核心精讲内附资料文档
download链接:https://pan.baidu.com/s/1OMTHc-tniLQ6C3_dkl3JWg?pwd=2vpa
提取码:2vpa
--来自百度网盘超级会员V5的分享
从零开端本人入手写自旋锁
我们在写并发程序的时分,一个十分常见的需求就是保证在某一个时辰只要一个线程执行某段代码,像这种代码叫做临界区,而通常保证一个时辰只要一个线程执行临界区的代码的办法就是锁🔒。在本篇文章当中我们将会认真剖析和学习自旋锁,所谓自旋锁就是经过while循环完成的,让拿到锁的线程进入临界区执行代码,让没有拿到锁的线程不断停止while死循环,这其实就是线程本人“旋”在while循环了,因此这种锁就叫做自旋锁。
原子性
在谈自旋锁之前就不得不谈原子性了。所谓原子性简单说来就是一个一个操作要么不做要么全做,全做的意义就是在操作的过程当中不可以被中缀,比方说对变量data停止加一操作,有以下三个步骤:

将data从内存加载到存放器。
将data这个值加一。
将得到的结果写回内存。

原子性就表示一个线程在停止加一操作的时分,不可以被其他线程中缀,只要这个线程执行完这三个过程的时分其他线程才干够操作数据data。
我们如今用代码体验一下,在Java当中我们能够运用AtomicInteger停止对整型数据的原子操作:
import java.util.concurrent.atomic.AtomicInteger;

public class AtomicDemo {

  public static void main(String[] args) throws InterruptedException {
    AtomicInteger data = new AtomicInteger();
    data.set(0); // 将数据初始化位0
    Thread t1 = new Thread(() -> {
      for (int i = 0; i < 100000; i++) {
        data.addAndGet(1); // 对数据 data 停止原子加1操作
      }
    });
    Thread t2 = new Thread(() -> {
      for (int i = 0; i < 100000; i++) {
        data.addAndGet(1);// 对数据 data 停止原子加1操作
      }
    });
    // 启动两个线程
    t1.start();
    t2.start();
    // 等候两个线程执行完成
    t1.join();
    t2.join();
    // 打印最终的结果
    System.out.println(data); // 200000
  }
}

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Hadoop Had Interrupted exception download

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 14:01