Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java-thread.md中的一个问题 #228

Open
Huiaong opened this issue Mar 30, 2020 · 4 comments
Open

java-thread.md中的一个问题 #228

Huiaong opened this issue Mar 30, 2020 · 4 comments

Comments

@Huiaong
Copy link

Huiaong commented Mar 30, 2020

https://github.com/zhonghuasheng/Tutorial/blob/master/java/basic/java-thread.md#%E7%BA%BF%E7%A8%8B%E7%9A%84%E8%AE%A9%E6%AD%A5yeild
代码中Yield#call方法使用了synchronized导致Thread.yield()失效

@Huiaong
Copy link
Author

Huiaong commented Mar 30, 2020

并且我不明白为什么会失效

@zhonghuasheng
Copy link
Owner

并且我不明白为什么会失效

没明白你说的失效是什么意思

@Huiaong
Copy link
Author

Huiaong commented Mar 30, 2020

并且我不明白为什么会失效

没明白你说的失效是什么意思

就是代码运行起来并没有达到yield的效果,如果你去掉synchronized关键字就达到了yield的效果

yeild1 -------1
yeild1 -------2
yeild1 -------3
yeild1 -------4
yeild1 -------5should be yield
yeild1 -------6
yeild1 -------7
yeild1 -------8
yeild1 -------9
yeild1 -------10should be yield
yeild1 -------11
yeild1 -------12
yeild1 -------13
yeild1 -------14
yeild1 -------15should be yield
yeild1 -------16
yeild1 -------17
yeild1 -------18
yeild1 -------19
yeild3 -------0should be yield
yeild3 -------1
yeild3 -------2
yeild3 -------3
yeild3 -------4
yeild3 -------5should be yield
yeild3 -------6
yeild3 -------7
yeild3 -------8
yeild3 -------9
yeild3 -------10should be yield
yeild3 -------11
yeild3 -------12
yeild3 -------13
yeild3 -------14
yeild3 -------15should be yield
yeild3 -------16
yeild3 -------17
yeild3 -------18
yeild3 -------19
yeild2 -------0should be yield
yeild2 -------1
yeild2 -------2
yeild2 -------3
yeild2 -------4
yeild2 -------5should be yield
yeild2 -------6
yeild2 -------7
yeild2 -------8
yeild2 -------9
yeild2 -------10should be yield
yeild2 -------11
yeild2 -------12
yeild2 -------13
yeild2 -------14
yeild2 -------15should be yield
yeild2 -------16
yeild2 -------17
yeild2 -------18
yeild2 -------19
yeild7 -------0should be yield
yeild7 -------1
yeild7 -------2
yeild7 -------3
yeild7 -------4
yeild7 -------5should be yield
yeild7 -------6
yeild7 -------7
yeild7 -------8
yeild7 -------9
yeild7 -------10should be yield
yeild7 -------11
yeild7 -------12
yeild7 -------13
yeild7 -------14
yeild7 -------15should be yield
yeild7 -------16
yeild7 -------17
yeild7 -------18
yeild7 -------19
yeild9 -------0should be yield
yeild9 -------1
yeild9 -------2
yeild9 -------3
yeild9 -------4
yeild9 -------5should be yield
yeild9 -------6
yeild9 -------7
yeild9 -------8
yeild9 -------9
yeild9 -------10should be yield
yeild9 -------11
yeild9 -------12
yeild9 -------13
yeild9 -------14
yeild9 -------15should be yield
yeild9 -------16
yeild9 -------17
yeild9 -------18
yeild9 -------19
yeild6 -------0should be yield
yeild6 -------1
yeild6 -------2
yeild6 -------3
yeild6 -------4
yeild6 -------5should be yield
yeild6 -------6
yeild6 -------7
yeild6 -------8
yeild6 -------9
yeild6 -------10should be yield
yeild6 -------11
yeild6 -------12
yeild6 -------13
yeild6 -------14
yeild6 -------15should be yield
yeild6 -------16
yeild6 -------17
yeild6 -------18
yeild6 -------19
yeild5 -------0should be yield
yeild5 -------1
yeild5 -------2
yeild5 -------3
yeild5 -------4
yeild5 -------5should be yield
yeild5 -------6
yeild5 -------7
yeild5 -------8
yeild5 -------9
yeild5 -------10should be yield
yeild5 -------11
yeild5 -------12
yeild5 -------13
yeild5 -------14
yeild5 -------15should be yield
yeild5 -------16
yeild5 -------17
yeild5 -------18
yeild5 -------19
yeild4 -------0should be yield
yeild4 -------1
yeild4 -------2
yeild4 -------3
yeild4 -------4
yeild4 -------5should be yield
yeild4 -------6
yeild4 -------7
yeild4 -------8
yeild4 -------9
yeild4 -------10should be yield
yeild4 -------11
yeild4 -------12
yeild4 -------13
yeild4 -------14
yeild4 -------15should be yield
yeild4 -------16
yeild4 -------17
yeild4 -------18
yeild4 -------19
yeild0 -------0should be yield
yeild0 -------1
yeild0 -------2
yeild0 -------3
yeild0 -------4
yeild0 -------5should be yield
yeild0 -------6
yeild0 -------7
yeild0 -------8
yeild0 -------9
yeild0 -------10should be yield
yeild0 -------11
yeild0 -------12
yeild0 -------13
yeild0 -------14
yeild0 -------15should be yield
yeild0 -------16
yeild0 -------17
yeild0 -------18
yeild0 -------19
yeild8 -------0should be yield
yeild8 -------1
yeild8 -------2
yeild8 -------3
yeild8 -------4
yeild8 -------5should be yield
yeild8 -------6
yeild8 -------7
yeild8 -------8
yeild8 -------9
yeild8 -------10should be yield
yeild8 -------11
yeild8 -------12
yeild8 -------13
yeild8 -------14
yeild8 -------15should be yield
yeild8 -------16
yeild8 -------17
yeild8 -------18
yeild8 -------19

Process finished with exit code 0```

@zhonghuasheng
Copy link
Owner

是的,需要把synchronized去掉。加上synchronized关键字是可以测出来在同步方法中执行Thread.yeild()会不会起作用

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants