java多线程实验报告总结(java多线程实战项目)
Java【实验10】多线程
public class test1 extends Thread{
public static void main(String[] args){
test1 t1=new test1();
other o = new other();
t1.start();
o.start();
}
@Override
public void run(){
try {
for(int i = 0 ; i10;i++){
System.out.println("云南"+i);
Thread.sleep(1000); }
} catch (InterruptedException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
}
class other extends Thread{
@Override
public void run(){
try {
for(int i = 0 ; i10;i++){
System.out.println("丽江"+i);
Thread.sleep(1000); }
} catch (InterruptedException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
}
关于JAVA多线程的过程,请高手帮忙分析一下那个结果是如何出来的.(一定有加分)
BankAccount类的acount 对象对于三个线程来说是共享变量,因为你的方法store()方法没有同步关键字synchronized,所以三个线程是可以同时执行共享变量的store方法的。而store方法中有两行代码,一个是账户值增加,一个是打印,他们不是原子(虽然在物理学上已经过时了)操作,所以不能保证打印的时候账户值是不是已经被其他线程修改了。
结果是怎么得来的?有了以上分析就很easy了。
三个线程都进入了store方法并且如threa-1将money 变成100,在这之后,threa-2和threa-3同时取了money的值(取到各自线程的临时变量里去),发现是100,然后加100后,在各自更新共享变量money,money变成了200.最后各自打印,thread-2 200,thread-3 200。后面的情况也是这样。
北大青鸟设计培训:Java多线程问题总结?
Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。
java课程培训机构认为这篇文章主要是对多线程的问题进行总结的,因此罗列了多个多线程的问题。
这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。
(1)发挥多核CPU的优势随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是双核的,4核、8核甚至16核的也都不少见,如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CPU上就浪费了75%。
单核CPU上所谓的”多线程”那是假的多线程,同一时间处理器只会处理一段逻辑,只不过线程之间切换得比较快,看着像多个线程”同时”运行罢了。
多核CPU上的多线程才是真正的多线程,它能让你的多段逻辑同时工作,多线程,可以真正发挥出多核CPU的优势来,达到充分利用CPU的目的。
(2)防止阻塞从程序运行效率的角度来看,单核CPU不但不会发挥出多线程的优势,反而会因为在单核CPU上运行多线程导致线程上下文的切换,而降低程序整体的效率。
但是单核CPU我们还是要应用多线程,就是为了防止阻塞。
试想,如果单核CPU使用单线程,那么只要这个线程阻塞了,比方说远程读取某个数据吧,对端迟迟未返回又没有设置超时时间,那么你的整个程序在数据返回回来之前就停止运行了。
多线程可以防止这个问题,多条线程同时运行,哪怕一条线程的代码执行读取数据阻塞,也不会影响其它任务的执行。
(3)便于建模这是另外一个没有这么明显的优点了。
假设有一个大的任务A,单线程编程,那么就要考虑很多,建立整个程序模型比较麻烦。
但是如果把这个大的任务A分解成几个小任务,任务B、任务C、任务D,分别建立程序模型,并通过多线程分别运行这几个任务,那就简单很多了。
java多线程读取数据库最后汇总
创建数据库
选择开始菜单中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打开【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份验证建立连接。
在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点
右键单击【数据库】节点,从弹出来的快捷菜单中选择【新建数据库】命令。
执行上述操作后,会弹出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,
在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。
在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。
在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。
切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。
切换到【文件组】页,在这里可以添加或删除文件组。
完成以上操作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。