- 浏览: 122676 次
- 性别:
- 来自: 地球
文章分类
最新评论
-
754731046:
很适合对初学者适用,谢谢
Oracle存储过程详解 -
天明破晓:
我测试了,不好用
Java中的正则表达式验证各种电话号码 -
OracleX:
otom31 写道从来不用标签库,几乎不用struts,除了最 ...
标签库的优点、缺点大辩论 -
otom31:
从来不用标签库,几乎不用struts,除了最早公司要使用以外; ...
标签库的优点、缺点大辩论
1.进程与线程
每个进程都独享一块内存空间,一个应用程序可以同时启动多个进程。比如IE浏览器,打开一个Ie浏览器就相当于启动了一个进程。
线程指进程中的一个执行流程,一个进程可以包含多个线程。
每个进程都需要操作系统为其分配独立的内存空间,而同一个进程中的多个线程共享这块空间,即共享内存等资源。
每次调用java.exe的时候,操作系统都会启动一个Java虚拟机进程,当启动Java虚拟机进程时候,Java虚拟机都会创建一个主线程,该线程会从程序入口main方法开始执行。
Java虚拟机每启动一个线程,就给会给该线程分配一个线程方法栈,用来存放相关信息(比如局部变量等),线程就在这个栈上运行。所以Java对象中的局部变量都是线程安全的,但实例变量及类变量由于不是保存在栈中,所以不是线程安全的。
进程有三种状态:就绪、执行、阻塞。
2.线程创建方式
Runnable方式:(此种方式灵活,推荐使用)
public class Thread02 implements Runnable { public static void main(String[] args) { Runnable r = new Thread02(); Thread t1 = new Thread(r, "t1"); /** * Thread源码 * public Thread(Runnable target, String name) { init(null, target, name, 0); } */ Thread t2 = new Thread(r, "t2"); t1.start(); // 启动线程t1,处于就绪状态,等待cpu t2.start(); // 启动线程t2,处于就绪状态,等待cpu t1.run(); // 主线程main调用对象t1的run方法 } public void run() { System.out.println("thread's name is " + Thread.currentThread().getName()); } }
运行结果可能是:
thread's name is t1
thread's name is main
thread's name is t2
Thead方式
public class Thread03 extends Thread { public static void main(String[] args) { Thread03 t1 = new Thread03(); //不注意的情况下写成了Thread t1=new Thread() 注:Thread03此时就是一个线程了 t1.start(); } public void run() { System.out.println("thread's name is " + Thread.currentThread().getName()); } }
运行结果:thread's name is Thread-0
注意:每次程序运行时除了自定义的线程外还有一个main线程。
综合:
public class Thread01 { public static void main(String[] args) { Thread thread=new Thread(); thread.start();//真正起作用 的是run() /**而Thread中的run * public void run() { if (target != null) { target.run(); } } 所以自己创建的线程要重写run方法,把要执行的内容放到run()中,所以要实现接口或继承进而产生子类 */ //创建线程的方式1 thread子类方式(继承) Thread thread1=new Thread(){ public void run() { while(true){ try { Thread.sleep(500);//休息500毫秒 } catch (InterruptedException e) { e.printStackTrace(); } //Thread.currentThread()得到当前线程 System.out.println("线程1的名字是 "+Thread.currentThread().getName()); } } }; // thread1.start(); //不写 线程无法启动 //创建线程的方式2 runnable方式(实现) 推荐使用 Thread thread2=new Thread(new Runnable(){ public void run() { while(true){ try { Thread.sleep(300); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("thread2'name is "+Thread.currentThread().getName()); } }}); // thread2.start(); //执行的是thread new Thread(new Runnable(){ public void run() { System.out.println("runnable "+Thread.currentThread().getName()); }}){ public void run() { //子类中的run方法覆盖父类中的run方法,这样就不会执行runnable System.out.println("thread "+Thread.currentThread().getName()); } }.start(); } /*** * 在单个cpu中执行多线程很有可能降低执行效率而不是提高 一个人在不同地方做同一件事情 */ }
发表评论
-
AOP的实现(JDK动态代理)
2011-11-29 16:21 993转自:http://www.blogjava.net/D ... -
Java 枚举7常见种用法
2011-11-27 22:54 877转自:http://helloyesyes.itey ... -
一个Java程序员应该掌握的10项技能
2011-11-18 11:57 10081、语法:必须比 ... -
Java回调函数使用
2011-08-16 16:14 709正常情况下开发人员使用已经定义好的API,这个过程叫 ... -
为什么要设置Java环境变量(详解)
2011-08-17 21:40 672从大二开始接触Java,之后是断断续续的学习。大三真正开始 ... -
很长空格的String转换成Array数组
2011-08-23 14:40 1289开发中碰到了一个需求,需要把键值对字符串分隔,但键值之 ... -
不同格式的日期字符串转换
2011-08-23 14:44 944先把字符串日期转换成对应的格式,然后再转换成日期 p ... -
用序列化(Serializable)保存、读取对象
2011-08-23 15:33 859实现Serializable借口的对象可以被转换成一系列 ... -
JUint测试
2011-08-23 15:36 648ClassA.java public class Cla ... -
解决Join方法的疑惑
2011-08-23 20:57 1003很长时间对join方法感到疑惑,不明白到底是谁要阻塞,谁要继 ... -
线程学习笔记【2】---Timer(定时器)
2011-08-28 09:15 776入门 public class Time01 { ... -
线程学习笔记【3】---互斥技术
2011-08-29 15:10 745第一个示例更多的是运用了内部类的特性: 内部类重要特点:可以 ... -
线程学习笔记【4】---线程之间通信
2011-08-29 17:31 742子线程先循环10次,然后主线程循环100次,再子线程循环10次 ... -
线程学习笔记【5】--ThreadLocal应用
2011-09-05 15:31 791基本的ThreadLocal使用 public clas ... -
各种创建单例模式的优缺点
2011-09-05 21:54 817单例模式应用于一个类只有一个实例的情况,并且为其实例提供一个全 ... -
格式化简单例子
2011-11-04 16:35 812参考:http://android.blog.51cto.co ... -
图片上传源码(commons-fileupload-1.2.2)分析
2011-11-03 11:20 2051题记:文章是供自己查看方便,所以没有进行格式化,请见谅 ... -
用序列化(Serializable)保存、读取对象
2011-08-23 15:56 911实现Serializable借口的对象可以被转换成一系 ... -
IO各种流使用清晰区别
2011-08-10 11:39 829引用:http://www.iteye.com/topic/1 ... -
创建File和Properties
2011-08-08 10:03 728package com.file; import ...
相关推荐
【资源说明】 1、开发环境:ssm框架;内含Mysql数据库;JSP技术 2、项目代码都经过严格调试,代码没有任何bug!下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
基于java的大学生兼职系统设计与实现.docx
沙威玛传奇(电脑游戏)
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
jdk版本:jdk1.8+ 前端:vue.js+ElementUI 开发工具:IDEA 或者eclipse都支持 编程语言: java 框架支持:springboot 数据库: mysql 版本不限 数据库工具:Navicat/SQLyog都可以 详细技术:java+springboot+vue+MYSQL+MAVEN 前端采用的Vue框架,后端采用java语言,sprinboot框架,mybatis操作数据源,使用软件:idea,eclipse、MySQL。完成了用户登录管理等模块的设计与实现。完成了系统数据库的设计,并基于MySQL数据库管理系统
题目描述: 给出一个简单的一元三次方程,要求三个解。 思路: 这些大佬们为何都用一些神奇的算法……还把这道题评为普及组难度……其实只要枚举就可以了,注意一下double精度。 这道题的代码可以比一些入门组的还要短……这道题其实应该在普及-难度
【资源说明】 1、开发环境:ssm框架;内含Mysql数据库;JSP技术 2、项目代码都经过严格调试,代码没有任何bug!下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
JPEG文件,一个上传开发板,一个解压后拖到Ubuntu的Home中
【资源说明】 1、开发环境:ssm框架;内含Mysql数据库;VUE技术 2、项目代码都经过严格调试,代码没有任何bug!下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还[基于Python]自己写的一个微信跳一跳自动游戏程序(针对安卓手机)。 全自动运行 自动适应不同分辨率 自动调整各个参数误差.zip行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
基于java的网上图书商城系统设计与实现.docx
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
前端采用的Vue框架,后端采用java语言,ssm框架,mybatis操作数据源,使用软件:idea,eclipse、MySQL。完成了用户登录管理等模块的设计与实现。完成了系统数据库的设计,并基于MySQL数据库管理系统 本系统基于SSM(Spring+SpringMVC+MyBatis)框架,适用于毕业设计, 基于B/S模式, mysql数据库,感兴趣的朋友们可以下载研究一下。 jdk版本:jdk1.8+ 前端:vue.js+ElementUI 开发工具:IDEA 或者eclipse都支持 编程语言: java 框架支持:ssm 数据库: mysql 版本不限 数据库工具:Navicat/SQLyog都可以 详细技术:java+ssm+vue+MYSQL+MAVEN
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
jdk版本:jdk1.8+ 前端:vue.js+ElementUI 开发工具:IDEA 或者eclipse都支持 编程语言: java 框架支持:springboot 数据库: mysql 版本不限 数据库工具:Navicat/SQLyog都可以 详细技术:java+springboot+vue+MYSQL+MAVEN 前端采用的Vue框架,后端采用java语言,sprinboot框架,mybatis操作数据源,使用软件:idea,eclipse、MySQL。完成了用户登录管理等模块的设计与实现。完成了系统数据库的设计,并基于MySQL数据库管理系统
给Wpf的datagrid控件动态添加title和数据的方法