首页
学习
活动
专区
圈层
工具
发布

Java里面Join(),为什么等待的是主线程,而不是当前子线程?

但是仔细一想,发现这个明明调用的是子线程的join()方法,按道理应该子线程等待执行才是,为什么反而是主线程等待了呢?...相关的示例代码如下: public static void main(String[] args) throws InterruptedException { Thread thread...源码中注释说明的是等待这个线程终止,那就是等待调用Join()的线程终止,再继续往下看: /** * Waits at most {@code millis} milliseconds for...注意按照程序的执行顺序,我们这里是主线程调用的Thread的Join方法,所以是判断子线程的存活状态,满足则让子线程执行,主线程来等待。...wait 等待方法是让线程进入等待队列,使用方法是 obj.wait(); 这样当前线程就会暂停运行,并且进入obj的等待队列中,称作“线程正在obj上等待”。

1.1K50

为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢?

进一步可以发现 string.Empty 实际上是一个静态只读字段,而不是一个常量。 为什么这个看起来最适合是常量的 string.Empty,竟然使用静态只读字段呢?...也就是说,string.Empty 字段并不是一个普通的字段,对它的调用会被特殊处理。但是是如何特殊处理呢?...string.Empty 需要是一个静态只读字段而不是常量?...String 类的构造函数(注意不是静态构造函数,String 类的静态构造函数是特殊处理不会调用的); 而如果这是一个静态字段,那么编译器可以在不做特殊处理的情况下,生成 ldsfld string...当然,事实上编译器也可以针对此场景做特殊处理,但为什么不是在编译这一层进行特殊处理,我已经找不到出处了。 本文引申的其他问题 能否反射修改 string.Empty 的值? 不行!

1.4K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C# 字符串排序时指定偏好的排列顺序

    defaultOrder1 = string.Join(", ", list1.OrderBy(x => x)); // 苦 * 白,苦 * 红,苦 * 黄,辣 * 白,辣 * 红,辣 * 黄,酸 *...白,酸 * 红,酸 * 黄,甜 * 白,甜 * 红,甜 * 黄 string defaultOrder2 = string.Join(", ", list2.OrderBy(x => x)); 可以看到...,通过 List 调用 OrderBy 方法就排好了(string.Join 只是把列表连接成字符串),效果就是 “大” 与 “长、宽、高” 都组合完之后才换下一项进行组合,这样看上去就更有条理一些。...但是,新的问题又显现出来了,就是 “大” 组合完之后,竟然是 “小” 进行组合,而不是符合常理的 “中” 参与组合;第二项也是 “高、宽、长” 而不是 “长、宽、高”。...白,苦 * 红,苦 * 黄,苦 * 白,辣 * 红,辣 * 黄,辣 * 白 string myOrder2 = string.Join(", ", list2.OrderBy(x => x, comparer

    53841

    Python str join方法:拼接字符串「建议收藏」

    当可迭代序列是字典时,拼接结果是键的拼接 join方法和‘+’性能比较 ---- 描述 str.join()方法是Python的字符串方法,用于将序列中的元素以指定的字符串连接成一个新的字符串。...语法 string.join(sequence) 名称 说明 备注 string 字符串连接符 可省略 sequence 要连接的元素序列 不可省略的参数,序列的元素是字符串 举例 1....元素序列是集合 >>> ''.join({'C', 'h', 'i', 'n', 'a'}) 'ahCni' 可以看出,输出的字符顺序与集合中元素的顺序不是保持一致的。 4....当可迭代序列是字典时,拼接结果是键的拼接 如果可迭代序列参数是字典,join的返回结果是字典中键的拼接结果,而不是键值对的拼接结果。 可以用values函数来拼接值的结果。...那么为什么使用join()方法时间会更快一些呢?

    1.5K40

    【愚公系列】2023年02月 .NETC#知识点-List转成字符串的总结

    .NET实现List转字符串的方式主要有如下: for Linq String.Join 一、List转成字符串的总结 1.for for循环是一种结构,它可以重复执行一系列语句,直到指定的条件不再满足...Console.WriteLine("循环方式实现结果: " + result.TrimEnd(',')); 2.String.Join String.Join 是 .NET Framework 中的一个静态方法...------------------------- Stopwatch sw = new Stopwatch(); sw.Start(); string result = String.Join(",...", list); sw.Stop(); Console.WriteLine($"程序耗时:{sw.ElapsedMilliseconds}ms."); Console.WriteLine("String.Join...总结 对于已三三种方式的总结 for:性能比较好,但是相对比较复杂,代码量多 String.Join:性能比较好,简单 Linq:性能比较差,简单

    1.9K20

    asp.net 下的中文分词检索工具 - jieba.net

    最明显的是内置词典,jieba的词典有50万个词条,而盘古的词典是17万,这样会造成明显不同的分词效果。..."工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作", cutAll: true); Console.WriteLine("[全模式]: {0}", string.Join...segmenter.Cut("工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作"); // 默认为精确模式 Console.WriteLine("【精确模式】:{0}", string.Join...工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作"); // 默认为精确模式,同时也使用HMM模型 Console.WriteLine("【新词识别】:{0}", string.Join...segmenter.Cut("工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作"); Console.WriteLine("【歧义消除】:{0}", string.Join

    35220
    领券