C产品在市场上有哪些独特优势?
- 内容介绍
- 文章标签
- 相关推荐
本文共计932个文字,预计阅读时间需要4分钟。
最近在网上闲逛,无意中看到一个有趣的话题及其解决方案,如下:
根据线程安全的相关知识,分析以下代码:
javapublic void test(int i) { // ...}
当调用`test`方法时,如果传入的`i`值为10,是否会引发死锁?简要说明理由。
答案:否,不会引发死锁。
理由:此代码片段仅提供了一个方法签名,没有具体的实现细节。死锁通常发生在两个或多个线程尝试获取资源,且这些资源以某种方式互相依赖时。由于缺少具体实现,无法确定是否存在死锁条件。
前几天在网上闲逛,无意中看到有这么一道题及其答案,如下:
根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由。
public void test(int i) { lock(this) { if (i > 10) { i--; test(i); } } }
答:不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把int换做一个object,那么死锁会发生)
当我看到这道题时,我心里只有两个答案,1、会发生死锁,2、不会。^_^说了当没说。我觉得会发生死锁的理由是:同一线程只能进入lock语句一次,如果这个线程没有退出lock语句就不能再次进入lock语句。
本文共计932个文字,预计阅读时间需要4分钟。
最近在网上闲逛,无意中看到一个有趣的话题及其解决方案,如下:
根据线程安全的相关知识,分析以下代码:
javapublic void test(int i) { // ...}
当调用`test`方法时,如果传入的`i`值为10,是否会引发死锁?简要说明理由。
答案:否,不会引发死锁。
理由:此代码片段仅提供了一个方法签名,没有具体的实现细节。死锁通常发生在两个或多个线程尝试获取资源,且这些资源以某种方式互相依赖时。由于缺少具体实现,无法确定是否存在死锁条件。
前几天在网上闲逛,无意中看到有这么一道题及其答案,如下:
根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由。
public void test(int i) { lock(this) { if (i > 10) { i--; test(i); } } }
答:不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把int换做一个object,那么死锁会发生)
当我看到这道题时,我心里只有两个答案,1、会发生死锁,2、不会。^_^说了当没说。我觉得会发生死锁的理由是:同一线程只能进入lock语句一次,如果这个线程没有退出lock语句就不能再次进入lock语句。

