page contents
Nen
Nen - 程序员

性别: 天津 - 天津市 注册于 2021-06-23

向TA求助
2850金币数
43180 经验值
1个粉丝
主页被访问 6250 次

3096 个回答

0 赞同

sleep() 和 wait() 的区别?

1、sleep() 方法正在执行的线程主动让出 cpu(然后 cpu 就可以去执行其他任务),在 sleep 指定时间后 cpu 再回到该线程继续往下执行(注意:sleep 方法只让出了 cpu,而并不会释放同步资源锁);而 wait() 方法则是指当前线程让自己暂时退让出同步资源锁,以便其他正在等待该资源的线程得到该资源进而运行,只有调用了 not...

回答于 2022-01-22 16:02

0 赞同

线程的 run() 和 start() 有什么区别?

1、每个线程都是通过某个特定 Thread 对象所对应的方法 run() 来完成其操作的,方法 run() 称为线程体。通过调用 Thread 类的 start() 方法来启动一个线程; 2、start() 方法来启动一个线程,真正实现了多线程运行。这时无需等待 run() 方法体代码执行完毕,可以直接继续执行下面的代码;这时此线程是处于就绪状态,并没有...

回答于 2022-01-22 16:00

0 赞同

在 Java 程序中怎么保证多线程的运行安全?

线程安全在三个方面体现: 原子性:提供互斥访问,同一时刻只能有一个线程对数据进行操作,(atomic,synchronized); 可见性:一个线程对主内存的修改可以及时地被其他线程看到,(synchronized、volatile); 有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序,该观察结果一般杂乱无序,(happens-befo...

回答于 2022-01-22 15:59

0 赞同

Java 线程同步的几种方法?

使用 Synchronized 关键字; wait 和 notify; 使用特殊域变量 volatile 实现线程同步; 使用可重入锁实现线程同步; 使用阻塞队列实现线程同步; 使用信号量 Semaphore。

回答于 2022-01-22 15:59

0 赞同

Thread.interrupt() 方法的工作原理是什么?

在 Java 中,线程的中断 interrupt 只是改变了线程的中断状态,至于这个中断状态改变后带来的结果,那是无法确定的,有时它更是让停止中的线程继续执行的唯一手段。不但不是让线程停止运行,反而是继续执行线程的手段。 在一个线程对象上调用 interrupt() 方法,真正有影响的是 wait、join、sleep 方法,当然这 3 个方法包...

回答于 2022-01-22 15:58

0 赞同

谈谈对 ThreadLocal 的理解?

在 Java 中,线程的中断 interrupt 只是改变了线程的中断状态,至于这个中断状态改变后带来的结果,那是无法确定的,有时它更是让停止中的线程继续执行的唯一手段。不但不是让线程停止运行,反而是继续执行线程的手段。 在一个线程对象上调用 interrupt() 方法,真正有影响的是 wait、join、sleep 方法,当然这 3 个方法包...

回答于 2022-01-22 15:58

0 赞同

在哪些场景下会使用到 ThreadLocal?

在调用 API 接口的时候传递了一些公共参数,这些公共参数携带了一些设备信息(是安卓还是 ios),服务端接口根据不同的信息组装不同的格式 数据返回给客户端。假定服务器端需要通过设备类型(device)来下发下载地址,当然接口也有同样的其他逻辑,我们只要在返回数据的时候判断好是什么类型的客户端就好了。上面这种场景...

回答于 2022-01-22 15:57

0 赞同

HashSet 怎么保证元素不重复的?

public boolean add(E e) {     return map.put(e, PRESENT)==null;  } 元素值作为的是 map 的 key,map 的 value 则是 PRESENT 变量,这个变量只作为放入 map 时的一个占位符而存在,所以没什么实际用处。其实,这时候答案已经出来了:HashMap 的 key 是不能重复的,而这里HashSet 的元素又是作为了 map 的 key,当然也...

回答于 2022-01-21 14:14

0 赞同

LinkedHashMap 的实现原理?

LinkedHashMap 也是基于 HashMap 实现的,不同的是它定义了一个 Entry header,这个 header 不是放在 Table 里,它是额外独立出来的。LinkedHashMap 通过继承 hashMap 中的 Entry,并添加两个属性 Entry before,after 和 header 结合起来组成一个双向链表,来实现按插入顺序或访问顺序排序。 LinkedHashMap 定义了排序模...

回答于 2022-01-21 14:14

0 赞同

Iterator 怎么使用?有什么特点?

迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。Java 中的 Iterator 功能比较简单,并且只能单向移动:   使用方法 iterator() 要求容器返回一个 Iterator。第一次调用 Iterator 的 next() 方法时,它返...

回答于 2022-01-21 14:13