
多线程与高并发
文章平均质量分 66
syb18810107241
1、开发语言:Java、Scala;
2、熟练掌握 Hadoop:HDFS、MapReduce、Yarn、Hive;
3、熟练掌握 HBase;
4、熟练掌握 Spark、SparkSQL、Spark Streaming;
5、熟练掌握 Kafka
6、熟练掌握 Flink
7、熟练掌握Java多线程和并发编程
8、熟悉JVM,有一定的JVM调优经验
9、熟悉Flume、Zookeeper、Apache Doris、ES、Redis等Hadoop生态体系其他工具
展开
-
【多线程与高并发(锁)】3、synchronized锁及其特性
可见性:必须确保在锁被释放之前,对共享变量所做的修改,对于随后获得该锁的另一个线程是可见的(即在获得锁时应获得最新共享变量的值),否则另一个线程可能是在本地缓存的某个副本上继续操作从而引起不一致。互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机制,这样在同一时间只有一个线程对需同步的代码块(复合操作)进行访问。互斥性我们也往往称为操作的原子性。synchronized 是 Java 中的关键字,是利用锁的机制来实现同步的。原创 2023-04-08 14:39:59 · 742 阅读 · 0 评论 -
【多线程与高并发(锁)】2、什么时候需要加锁
在上面的程序中,线程 t1和t2 在执行前都先sleep了一秒,此时两个线程读取到的 wordCount 的变量值都是 10,线程 t1 对这个变量+20,线程 t2 对这个变量 +30。我们最终看到的结果可能是 30 (10+20),也可能是 40(10+30)。但是这2个结果都不是我们想要的结果,我们需要的正确结果应该是 10+20+30=60。在这种情况下,我们就需要加锁,可以把 addWordCount 方法锁住,当一个线程进入这个方法中时,不允许另外的线程对wordCount变量进行操作。原创 2023-04-08 14:03:22 · 374 阅读 · 0 评论 -
【多线程与高并发(锁)】1、锁的概念、分类和状态
java当中的锁、是在多线程环境下为保证共享资源健康、线程安全的一种手段。线程操作某个共享资源之前,先对资源加一层锁,保证操作期间没有其他线程访问资源,当操作完成后,再释放锁。原创 2023-04-08 13:29:50 · 473 阅读 · 0 评论 -
【多线程与高并发应用】1、借助addShutdownHook和线程的join方法优雅的退出while(true)循环(Scala实现)
【代码】【多线程与高并发应用】1、借助addShutdownHook和线程的join方法优雅的退出while(true)循环(Scala实现)原创 2023-04-06 17:00:20 · 650 阅读 · 0 评论 -
【多线程与高并发(线程)】2、线程的启动方式
联系:Thread也是实现自Runable,两种方式都需要重写run()方法,将线程要执行的逻辑声明在run中。4.将此对象作为参数传递到Thread类中的构造器中,创建Thread类的对象。2.实现类去实现Runnable中的抽象方法:run()2:实现的方式更适合用来处理多个线程有共享数据的情况。5.通过Thread类的对象调用start()开发中,优先选择实现Runable接口的方式。1.创建一个实现了Runable接口的类。1:实现的方式没有类的单继承性的局限性。3.创建实现类的对象。原创 2023-04-03 23:14:00 · 281 阅读 · 0 评论 -
【多线程与高并发(线程)】1、线程的基本概念
总结:并行:多个CPU同时执行多个任务,比如:多个人同时做不同的事并发:一个CPU(采用时间片)同时执行多个任务,比如秒杀平台,多个人做同件事以单核CPU为例,只使用单个线程先后完成多个任务(调用多个方法),肯定比用多个线程来完成用的时间更短,为何仍需多线程呢?原创 2023-04-03 22:57:51 · 255 阅读 · 0 评论