易截截图软件、单文件、免安装、纯绿色、仅160KB

java 多线程 专题

CoreJava多线程
线程的概念:
线程指进程中的一个执行流程,一个进程可以包含多个线程。
每一个进程都独享一块内存空间。每个进程都需要操作系统为其分配独立的内存地址,而同一进程中的多个线程在同一块地址空间工作,他们共享一块内存和资源。
java中有两中方法创建一个多线程类:
1、继承java.lang.Thread类,覆盖Thread类的run()方法
2、实现Runnable接口,实现Runnable接口的run()方法。推荐使用第二种,因为第二种更加的灵活。
 
 
每次调用java.exe的时候操作系统都会启动一个JVM进程,当启动JVM的时候,JVM都会创建一个主线程,改线程从程序入口main方法开始执行,这个线程的名字就叫main,可以在main方法中打印线程名:
System.out.println( Thread.currentThread().getName())来测试。
 
注意:每次程序运行的时候除了自定义的线程外还有一个main线程。
 
线程的调度
sleep(xxx),指当前运行的线程睡眠xxx秒,睡眠的时候当前线程会交出CPU,但是不会交出对象的锁!
 
yield(),指当前运行的线程交出CPU,给其他线程运行的机会。
 
join(),指将CPU交给调用join()方法的线程对象,直到该线程运行结束。
 
线程的各种状态
新建状态(new) //线程刚被创建出来
        Runnable r = new ThreadTest2();
        Thread t1 = new Thread(r,"t1");//创建线程t1 线程处在new状态
 
就绪状态(Runnable)
        t1.start();//启动线程t1,这时候他处在Runnable状态,等待CPU的调度。
 
运行状态(Running)
       如果处在Runnable状态的线程,被调度获得cpu,那么他就处在Running状态
 
阻塞状态(Blocked)
       如果Running中的线程调用sleep(),yield()或者程序运行到等待输入的方法时,他就处在阻塞状态。
       如果执行到了wait()语句,释放锁标记,并进入等待池中。直到某个线程调用notifyAll()方法将其从对象的等待池转进锁池,等待锁标记!
 
死亡状态(Dead)
       线程执行完毕,就处于死亡状态。
 
线程安全的控制
关键就是使用:synchronized 、 wait() 和 notifyAll()  &


相关文档:

利用java Api解析XML

import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import or ......

利用Java API对字符串进行加密解密(DES加密算法)

 /*Decryptor*/
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
/**
 * Decrypt the password get form Xpress GUI
 */
public class Decryptor{
  
//加密    
  ......

java mail 相关

【声明】转帖地址 : http://tech.ddvip.com/2009-04/1239788309115180.html
MailSenderInfo .java :
package com.util.mail;
import java.util.Properties;
/**
* @author AllanKing
* @date 2009-11-12
*/
public class MailSenderInfo {
// 发送邮件的服务器的IP和端口
private String mailServerHost; ......

带着java学python

 python正文:     和其它语言一样,我们可以以命令行的形式给你的python程序传递参数,pyhton能够自动把命令行参数以字符串列表的形式存储在sys模块的arv变量。ok,我们先来看个例程:
 
#  文件名: printargs.py
#用途:演示python的传参
import sys
print sys.argv
在命 ......

整理用Java实现数字转化成字符串左边自动补零方法

Java 中给数字左边补0 (1)方法一
import java.text.NumberFormat; public class NumberFormatTest {     public static void main(String[] args) {
        //待测试数据
        int i = 1;
  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号