![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 72
人丑多读书
这个作者很懒,什么都没留下…
展开
-
Java多线程:线程简介
一、线程概述 线程是程序运行的基本执行单元。当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来作为这个程序运行的入口点。因此,在操作系统中运行的任何程序都至少有一个主线程。 进程和线程是现代操作系统中两个必不可少的运行模型。在操作系统中可以有多个进程,这些进程包...原创 2010-12-19 09:50:48 · 67 阅读 · 0 评论 -
java生成静态页
在接下来的应用中,我自己想到另一种解决方案,就是通过Ajax + Struts + XML解决静态页面方案,一并写下来,与大家分享!生成静态页面技术解决方案之一(转载) 生成静态页面技术解决方案之二(转载) 一个实现将动态页面转为静态的方案(转载) JSP生成静态HTML页面范例(转载) 利用XML+XSL生成静态页面技术方案(转载) Ajax + Struts + X...原创 2011-02-27 10:26:31 · 83 阅读 · 0 评论 -
TCP/IP协议解释
TCP/IP 是不同的通信协议的大集合。[img]http://dl.iteye.com/upload/attachment/386152/d34c466b-52dc-381f-874c-7fec7625a43a.jpg[/img]--------------------------------------------------------------------...原创 2011-01-09 23:24:17 · 70 阅读 · 0 评论 -
多线程程序设计23个要点
1.多线程中有主内存和工作内存之分, 在JVM中,有一个主内存,专门负责所有线程共享数据;而每个线程都有他自己私有的工作内存, 主内存和工作内存分贝在JVM的stack区和heap区。 2.线程的状态有'Ready', 'Running', 'Sleeping', 'Blocked', 和 'Waiting'几个状态,'Ready' 表示线程正在等待CPU分配允许运行的时间。...原创 2010-12-19 10:17:29 · 54 阅读 · 0 评论 -
Java多线程(12):使用Synchronized块同步变量
我们可以通过synchronized块来同步特定的静态或非静态方法。要想实现这种需求必须为这些特性的方法定义一个类变量,然后将这些方法的代码用synchronized块括起来,并将这个类变量作为参数传入synchronized块。下面的代码演示了如何同步特定的类方法: 001 package mythread; 002 003 public class SyncThr...原创 2010-12-19 10:10:21 · 61 阅读 · 0 评论 -
Java多线程(11):使用Synchronized块同步方法
synchronized关键字有两种用法。第一种就是在《使用Synchronized关键字同步类方法》一文中所介绍的直接用在方法的定义中。另外一种就是synchronized块。我们不仅可以通过synchronized块来同步一个对象变量。也可以使用synchronized块来同步类中的静态方法和非静态方法。 synchronized块的语法如下:public void...原创 2010-12-19 10:09:41 · 68 阅读 · 0 评论 -
Java多线程(10):使用Synchronized关键字同步类方法
要想解决“脏数据”的问题,最简单的方法就是使用synchronized关键字来使run方法同步,代码如下:public synchronized void run(){ } 从上面的代码可以看出,只要在void和public之间加上synchronized关键字,就可以使run方法同步,也就是说,对于同一个Java类的对象实例,run方法同时只能被一个线程...原创 2010-12-19 10:08:07 · 82 阅读 · 0 评论 -
Java多线程(9):为什么要进行数据同步
Java中的变量分为两类:局部变量和类变量。局部变量是指在方法内定义的变量,如在run方法中定义的变量。对于这些变量来说,并不存在线程之间共享的问题。因此,它们不需要进行数据同步。类变量是在类中定义的变量,作用域是整个类。这类变量可以被多个线程共享。因此,我们需要对这类变量进行数据同步。 数据同步就是指在同一时间,只能由一个线程来访问被同步的类变量,当前线程访问完这些变量后,其他...原创 2010-12-19 10:06:56 · 121 阅读 · 0 评论 -
Java多线程(8):从线程返回数据的两种方法
从线程中返回数据和向线程传递数据类似。也可以通过类成员以及回调函数来返回数据。但类成员在返回数据和传递数据时有一些区别,下面让我们来看看它们区别在哪。 一、通过类变量和方法返回数据 使用这种方法返回数据需要在调用start方法后才能通过类变量或方法得到数据。让我们先来看看例程2-13会得到什么结果。package mythread;public clas...原创 2010-12-19 10:01:12 · 220 阅读 · 0 评论 -
Java多线程(7):向线程传递数据的三种方法
在传统的同步开发模式下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回最终的计算结果。但在多线程的异步开发模式下,数据的传递和返回和同步开发模式有很大的区别。由于线程的运行和结束是不可预料的,因此,在传递和返回数据时就无法象函数一样通过函数参数和 return语句来返回数据。本文就以上原因介绍了几种用于向线程传递数据的方法,在下一篇文章中将介绍从线程中返回数据的方...原创 2010-12-19 10:00:42 · 82 阅读 · 0 评论 -
Java多线程(6):慎重使用volatile关键字
volatile关键字相信了解Java多线程的读者都很清楚它的作用。volatile关键字用于声明简单类型变量,如int、float、boolean等数据类型。如果这些简单数据类型声明为volatile,对它们的操作就会变成原子级别的。但这有一定的限制。例如,下面的例子中的n就不是原子级别的:package mythread;public class JoinThread ex...原创 2010-12-19 09:59:54 · 60 阅读 · 0 评论 -
Java多线程(5):join方法的使用
在上面的例子中多次使用到了Thread类的join方法。我想大家可能已经猜出来join方法的功能是什么了。对,join方法的功能就是使异步执行的线程变成同步执行。也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方法。如果不使用join方法,就不能保证当执行到start方法后面的某条语句时,这个线程一定...原创 2010-12-19 09:59:13 · 58 阅读 · 0 评论 -
Java多线程(4):线程的生命周期
与人有生老病死一样,线程也同样要经历开始(等待)、运行、挂起和停止四种不同的状态。这四种状态都可以通过Thread类中的方法进行控制。下面给出了Thread类中和这四种状态相关的方法。 // 开始线程 public void start( ); public void run( ); // 挂起和唤醒线程 public void resum...原创 2010-12-19 09:58:02 · 59 阅读 · 0 评论 -
Java多线程(3):使用Runnable接口创建线程
实现Runnable接口的类必须使用Thread类的实例才能创建线程。通过Runnable接口创建线程分为两步: 1. 将实现Runnable接口的类实例化。 2. 建立一个Thread对象,并将第一步实例化后的对象作为参数传入Thread类的构造方法。 最后通过Thread类的start方法建立线程。 下面的代码演示了如何使用Runnabl...原创 2010-12-19 09:53:11 · 72 阅读 · 0 评论 -
Java多线程(2):用Thread类创建线程
在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过 Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。Thread类的构造方法被重载了八次,构造方法如下:public Thread( );public Thread(Runnable target...原创 2010-12-19 09:52:02 · 84 阅读 · 0 评论 -
字符串分割
public int getCount(String str,String sign){//查找某一字符串中str,特定子串s的出现次数 if(str==null) return 0; StringTokenizer s=new StringTokenizer(str,sign); ...原创 2011-02-27 10:55:09 · 101 阅读 · 0 评论