page contents
Nen
Nen - 程序员

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

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

3096 个回答

0 赞同

为什么要使用并发编程?

充分利用多核CPU的计算能力通过并发编程的形式可以将多核CPU的计算能力发挥到极致,性能得到提升 方便进行业务拆分,提升系统并发能力和性能在特殊的业务场景下,先天的就适合于并发编程。现在的系统动不动就要求百万级甚至千万级的并发量,而多线程并发编程正是开发高并发系统的基础,利用好多线程机制可以大大提高系统整...

回答于 2022-04-08 15:59

0 赞同

并发编程有什么缺点?

并发编程的目的就是为了能提高程序的执行效率,提高程序运行速度,但是并发编程并不总是能提高程序运行速度的,而且并发编程可能会遇到很多问题,比如: 内存泄漏 上下文切换 线程安全 死锁 等问题。

回答于 2022-04-08 15:59

0 赞同

并发编程三要素是什么?

原子性原子,即一个不可再被分割的颗粒。原子性指的是一个或多个操作要么全部执行成功要么全部执行失败。 可见性一个线程对共享变量的修改,另一个线程能够立刻看到。(synchronized,volatile) 有序性程序执行的顺序按照代码的先后顺序执行。(处理器可能会对指令进行重排序)

回答于 2022-04-08 15:59

0 赞同

什么是上下文切换?

多线程编程中一般线程的个数都大于 CPU 核心的个数,而一个 CPU 核心在任意时刻只能被一个线程使用,为了让这些线程都能得到有效执行,CPU 采取的策略是为每个线程分配时间片并轮转的形式。当一个线程的时间片用完的时候就会重新处于就绪状态让给其他线程使用,这个过程就属于一次上下文切换。 概括来说就是:当前任务在执...

回答于 2022-04-08 15:59

0 赞同

创建线程有哪几种方式?

3种方式: 继承 Thread 重新 run 方法; 实现 Runnable 接口; 实现 Callable 接口;

回答于 2022-04-08 15:58

0 赞同

线程有哪些状态?

NEW尚未启动 RUNNABLE正在执行中 BLOCKED阻塞的(被同步锁或者IO锁阻塞) WAITING永久等待状态 TIMED_WAITING等待指定的时间重新被唤醒的状态 TERMINATED执行完成

回答于 2022-04-08 15:58

0 赞同

stop() 和 suspend() 方法为何不推荐使用?

stop() 因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。 suspend() 该方法容易发生死锁。调用 suspend() 的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,...

回答于 2022-04-08 15:58

0 赞同

什么是多线程,多线程的优劣?

什么是多线程?多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务。 多线程的好处可以提高 CPU 的利用率。在多线程程序中,一个线程必须等待的时候,CPU 可以运行其它的线程而不是等待,这样就大大提高了程序的效率。也就是说允许单个程序创建多个并行执行的线程来完成各自的任...

回答于 2022-04-08 15:57

0 赞同

守护线程和用户线程有什么区别呢?

守护线程和用户线程 用户 (User) 线程:运行在前台,执行具体的任务,如程序的主线程、连接网络的子线程等都是用户线程 守护 (Daemon) 线程:运行在后台,为其他前台线程服务。也可以说守护线程是 JVM 中非守护线程的 “佣人”。一旦所有用户线程都结束运行,守护线程会随 JVM 一起结束工作 main 函数所在的线程就是一个用...

回答于 2022-04-08 15:57

0 赞同

C语言中的“野指针”是什么?

“悬空指针”是指向被释放内存的指针,“野指针”则是不确定其具体指向的指针。“野指针”最常来自于未初始化的指针,例如下面这段C语言代码: void *p;// 此时 p 是“野指针” 因为“野指针”可能指向任意内存段,因此它可能会损坏正常的数据,也有可能引发其他未知错误,所以C语言中的“野指针”危害性甚至比“悬空指针”还要严重。在...

回答于 2022-04-06 16:14