gpt4 book ai didi

java - 方法中一次只能有一个字符串

转载 作者:行者123 更新时间:2023-11-30 07:39:19 24 4
gpt4 key购买 nike

我有一个单例方法:

public void myMethod(String x){
//do lengthy process on x
}

我有三个线程调用 myMethod:

  1. Thread A, x="word" --> start at 05.00.01pm, finished at 05.00.10pm
  2. Thread B, x="sentence" --> start at 05.00.01pm, finished at 05.00.08pm
  3. Thread C, x="word" --> start at 05.00.02pm, finished at ???

如您所见,线程 C 应该等到线程 A 完成,因为线程 C 也在发送单词 >。但是,即使在线程 A 完成之前,线程 B 也可以执行 myMethod,因为它发送的是 sentence 而不是

myMethod会被频繁调用,并且myMethod中的参数x没有规则,所以我不认为保存所有可能的值对于参数x是可行的

仅供引用:虽然“x”参数的字符串长度不受限制,但字符保证仅为字母数字(a..zA..Z0..9),没有奇怪的重音字符我该怎么做?

最佳答案

您可以通过在方法中放置一个基于字符串规范表示的同步块(synchronized block)来实现此目的

public void myMethod(String x){
synchronized(x.intern()){
//do lengthy process on x
}
}

关于java - 方法中一次只能有一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34922821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com