50,549
社区成员
发帖
与我相关
我的任务
分享
/* ThreadLocal values pertaining to this thread. This map is maintained
* by the ThreadLocal class. */
ThreadLocal.ThreadLocalMap threadLocals = null;
/*
* InheritableThreadLocal values pertaining to this thread. This map is
* maintained by the InheritableThreadLocal class.
*/
ThreadLocal.ThreadLocalMap inheritableThreadLocals = null;
也就是每一个Thread都有自己的ThreadLocalMap对象,当然就不受其它线程干扰了。
要学习java该学的东西太多了,建议与工作相关的技术进行入手,然后深入挖掘,一来加重了知识的深入,二来也对工作有益。本书网上有售,感谢关注。[/quote]
我是转行做的JAVA所以不知道有操作系统的中断这一概念因为没学过计算机基础课程啊 灰常谢谢指点啊 在请问教下多线程设计yied这个方法我感觉很不好 它的字面意思是线程礼让 就是把CPU的执行权让出去 但是把CPU让出去的话 它自己也参与去抢 所以它自己还是能抢到CPU的执行权啊 还有个就是 thread.setPriority设置线程的等级的这个方法 这个设置线程的等级 但是线程等级高的也不是肯定就比线程等级低的先抢到CPU执行权 只是概率大 所以我感觉这两个方法设计的都不好啊[/quote]
呵,越快的确越好,但完全占用CPU的资源也是不可取的,所以yield方法就可以与其它任务分享CPU资源 。优先级是增大概率,不100%最优先的,公平,尽量的公平。
这种情况一定要使用JVM内存快照工具来分析,应该有内存溢出的代码。
可以使用同步代码块,在需要同步的地方进行包围,即保证了效率,又保证了安全
发布共享变量可以使用ThreadLocal,volatile,同步synchronized,根据不同的情况使用不同的处理方式。只要涉及多个线程访问同一个对象的实例变量时就要考虑线程是否安全了。
其实这样的情况是JVM的native隐藏过多造成的,JVM的不开源,造成很多知识仅仅要靠经验来解决,虽然HotSpot VM提供了源代码,但基本是从JAVA语言跳到了C,这对JAVA程序员的学习增加了时间成本,得不尝失。所以我想与其这样,不如转而研究JVM优化来得更实在一些:)
分割的情况:多个线程负责某一部分,比如A线程负责处理1-10000行,线程B负责处理10001-20000行,等等。如果分割的算法没有错误,则全部的数据都可以被处理
不分割的情况:针对您的这种情况,建议还是使用单线程进行处理,因为仅仅是处理数据,而无阻塞的情况,单线程的运行效率是最快的,不需要CPU上下文切换
这个问题典型的就是操作系统课程中的“中断”啊,分为硬中断-CPU和软中断-软件,主要的原理就是使用CPU指令 ,给您一个网址:
http://blog.csdn.net/wangzhen199009/article/details/38677075
可以看一下
我认为,这两种锁从使用目的性上来看是一样,只不过一个保证类中的属性值是安全的,另外一个是保证数据表的行的内容是安全的
Thread.java源代码如下:
/* ThreadLocal values pertaining to this thread. This map is maintained
* by the ThreadLocal class. */
ThreadLocal.ThreadLocalMap threadLocals = null;
/*
* InheritableThreadLocal values pertaining to this thread. This map is
* maintained by the InheritableThreadLocal class.
*/
ThreadLocal.ThreadLocalMap inheritableThreadLocals = null;
也就是每一个Thread都有自己的ThreadLocalMap对象,当然就不受其它线程干扰了。
要学习java该学的东西太多了,建议与工作相关的技术进行入手,然后深入挖掘,一来加重了知识的深入,二来也对工作有益。本书网上有售,感谢关注。[/quote]对了 你是JAVAEE核心框架实战的作者吗 我感觉这本书对我转换搞JAVA的特别浅显易懂 特别是各种框架转JSON 讲的很详细 很实用 希望你能出一本讲JS 和jquery方面的书
[/quote]
呵呵,感谢您购买我的另外一本拙作,并且认可我的这种写作。大家进入javaweb的学习会遇到很多的框架,其实每一种框架都有常用的那么几个技术需要必须要掌握的,我想我应该把这类技术总结出来,并且用最浅显易懂的方式让读者以最快的时间进行跨语言或转行业的学习,我不希望我的读者买到的是一本100个案例,却在公司中只用到20个的书籍,那样我认为是浪费读者的金钱与学习的成本,那就是时间,读者只要入了门,其它80个案例如果在公司中遇到那么几个只要在网上找找资源都会解决的,所以我写作的目标就是快速,便携的学习。包括这本JAVA多线程的书,里面共有180多个JAVA案例,用无“多余”的代码展示每一个技术点,目的就是让读者快速学习,快速掌握。
说的有点多,呵呵,感谢你们的支持。我会继续努力。
继续看第二章吧:)
嗯,其实一点也不难
感谢支持:)
共同努力 ! /* ThreadLocal values pertaining to this thread. This map is maintained
* by the ThreadLocal class. */
ThreadLocal.ThreadLocalMap threadLocals = null;
/*
* InheritableThreadLocal values pertaining to this thread. This map is
* maintained by the InheritableThreadLocal class.
*/
ThreadLocal.ThreadLocalMap inheritableThreadLocals = null;
也就是每一个Thread都有自己的ThreadLocalMap对象,当然就不受其它线程干扰了。
要学习java该学的东西太多了,建议与工作相关的技术进行入手,然后深入挖掘,一来加重了知识的深入,二来也对工作有益。本书网上有售,感谢关注。[/quote]对了 你是JAVAEE核心框架实战的作者吗 我感觉这本书对我转换搞JAVA的特别浅显易懂 特别是各种框架转JSON 讲的很详细 很实用 希望你能出一本讲JS 和jquery方面的书
/* ThreadLocal values pertaining to this thread. This map is maintained
* by the ThreadLocal class. */
ThreadLocal.ThreadLocalMap threadLocals = null;
/*
* InheritableThreadLocal values pertaining to this thread. This map is
* maintained by the InheritableThreadLocal class.
*/
ThreadLocal.ThreadLocalMap inheritableThreadLocals = null;
也就是每一个Thread都有自己的ThreadLocalMap对象,当然就不受其它线程干扰了。
要学习java该学的东西太多了,建议与工作相关的技术进行入手,然后深入挖掘,一来加重了知识的深入,二来也对工作有益。本书网上有售,感谢关注。[/quote]
我是转行做的JAVA所以不知道有操作系统的中断这一概念因为没学过计算机基础课程啊 灰常谢谢指点啊 在请问教下多线程设计yied这个方法我感觉很不好 它的字面意思是线程礼让 就是把CPU的执行权让出去 但是把CPU让出去的话 它自己也参与去抢 所以它自己还是能抢到CPU的执行权啊 还有个就是 thread.setPriority设置线程的等级的这个方法 这个设置线程的等级 但是线程等级高的也不是肯定就比线程等级低的先抢到CPU执行权 只是概率大 所以我感觉这两个方法设计的都不好啊