首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
武哥聊编程
掘友等级
Java软件开发工程师
|
拼多多
微信搜索:武哥聊编程
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
9
文章 9
沸点 0
赞
9
返回
|
搜索文章
赞
文章( 9 )
沸点( 0 )
Java并发基础08:ThreadLocal 类以及应用技巧
在上一节我们总结了一下,线程范围内的数据共享问题,即定义一个 Map,将当前线程名称和线程中的数据以键值对的形式存到 Map 中,然后在当前线程中使用数据的时候就可以根据当前线程名称从 Map 中拿到当前线程中的数据,这样就可以做到不同线程之间数据互不干扰。其实 ThreadL…
当阿里面试官问我:Java创建线程有几种方式?我就知道问题没那么简单
这哥们心中窃喜,这个老生常谈的问题早已背的滚瓜烂熟,于是很流利的说了出来。 这些简单的问题难不倒这哥们,于是他想到了 Java5 之后的Executors,Executors工具类可以用来创建线程池。 面试官:嗯,OK,咱们还是针对你刚刚写的代码,我再问你个问题。 果然问到了源…
Java并发基础07:原子性操作类的使用
1. 基本类型的使用 可以看出,10个线程之间是线程安全的,并没有冲突。也就是说,我们使用原子性操作类去操作基本类型int就可以解决线程安全问题,一个线程在操作的时候,会对其它线程进行排斥,不用我们手动去使用synchronized实现互斥操作了。AtomicLong和Atom…
Java并发基础06. 线程范围内共享数据
从结果中可以看出,两次对 data 赋的值确实不一样,但是两个线程最后打印出来的都是最后赋的那个值,说明 Thread-0 拿出的数据已经不对了,这就是线程间共享数据带来的问题。 当然,我们完全可以使用 synchronized 关键字将 run() 方法中的几行代码给套起来,…
Java并发技术05:传统线程同步通信技术
看完这个问题,很明显要用到线程间的通信了, 先分析一下思路:首先肯定要有两个线程,然后每个线程中肯定有个50次的循环,因为每个线程都要往返执行任务50次,主线程的任务是执行5次,子线程的任务是执行10次。线程间通信技术主要用到 wait() 方法和 notify() 方法。wa…
Java并发基础04:线程技术之死锁问题
我们知道,使用 synchronized 关键字可以有效的解决线程同步问题,但是如果不恰当的使用 synchronized 关键字的话也会出问题,即我们所说的死锁。死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程…
Java并发基础03:传统线程的互斥技术—synchronized
在多个线程同时操作相同资源的时候,就会遇到并发的问题,如银行转账啊、售票系统啊等。为了避免这些问题的出现,我们可以使用 synchronized 关键字来解决,下面针对 synchronized 常见的用法做一个总结。首先写一个存在并发问题的程序,如下: 在内部类 Output…
Java并发基础02:传统线程技术中的定时器技术
传统线程技术中有个定时器,定时器的类是Timer,我们使用定时器的目的就是给它安排任务,让它在指定的时间完成任务。所以先来看一下Timer类中的方法(主要看常用的TimerTask()方法): |void|schedule(TimerTask task, long delay)…
Java并发基础01:揭秘传统线程技术中创建线程的两种方式
传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法;二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread。这两种方式大部分人可能都知道,但是为什么这样玩就可以呢?下面我们来详细分析一下这两种方法…
个人成就
文章被点赞
18
文章被阅读
3,233
掘力值
190
关注了
1
关注者
16
收藏集
0
关注标签
10
加入于
2019-01-05