本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 https://developer.aliyun.com/article/706511 点击链接欢迎加入感兴趣的技术领域群。
多线程状态下 当前线程调用到 native 方法时,对于 JVM 来说,是对其他线程进行 阻塞,等待当前线程执行完 native 方法,还是在执行 native 方法过程中,任然可以进行多线程的切换执行?(目前没有环境,无法测试)
那么当调用到 native(如:C++) 方法时,会被 JNI 在 Code Cache 解析为一条指令,还是继续解析 native 方法得到相应指令?如果是继续解析 native 方法 ,那么解析后的机器码,在 Code Cache 中的保存和 将 JAVA 代码解析后的机器码保存有什么不同?
谢谢。
首先,java里面的线程,只是执行一个方法,那个方法名为 public void run(){} 再次,在java里面,使用线程是要继承Thread类(重写run方法),或者是实现Runnable接口(实现run方法) 然后,建立一个线程,是 1、继承线程Thread类: MyThread thread=new MyThread(); 启动:thread.start();这样就启动一个线程,但它只是执行run方法里面的东西 2、实现Runnable接口的:MyRunnableThread thread=new MyRunnableThread(); 启动: Thread runThread=new Thread(thread); runThread.start();(或者直接写为:new Thread(thread).start() ) 最后,在这里你应该可以看到了,这是一个类线程,不是一个方法线程。如果你要执行多个方法,就要多写和创建启动多个线程类
答案来源网络,供参考,希望对您有帮助
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。