当前位置: 编程技术>移动开发
本页文章导读:
▪Tomcat(免安装版)的装配与配置 Tomcat(免安装版)的安装与配置
如果是免安装版。是不是点start.up一闪而过。没有配置JDK,我也不知道怎么他妈的配置JDK。反正就是tomcat找不到JDK,我们用记事本打开,在上面加两行,SET .........
▪ 堵塞队列 阻塞队列
ArrayBlockingQueueLinkedBlockingQueueSynchronousQueueproducer// 如果队列满则阻塞blockingQ.put(object);阻于生产者-消费者模式。consumerfor(;;) {blockingQ.take(); // 如果队列空则阻塞}Queue<E>add(E) : bool.........
▪ 兑现一个简单的阻塞队列 实现一个简单的阻塞队列
classBlockingQ{privateObject notEmpty= newObject();privateQueue<Object> linkedList= new LinkedList<Object>();publicObject take() throwsInterruptedException{synchronized(notEmpty) {if(linkedList.size() .........
[1]Tomcat(免安装版)的装配与配置
来源: 互联网 发布时间: 2014-02-18
Tomcat(免安装版)的安装与配置
如果是免安装版。是不是点start.up一闪而过。没有配置JDK,我也不知道怎么他妈的配置JDK。反正就是tomcat找不到JDK,我们用记事本打开,在上面加两行,
SET JAVA_HOME=JDK目录
SET CATALINA_HOME=前面解压后Tomcat的目录或者%cd%
就可以了,要关闭的话也是这样
Tomcat(免安装版)的安装与配置
一、下载Tomcat
Tomcat可以从http://tomcat.apache.org/网站下载,选择任意版本,在 Binary Distributions 下的zip包既是。
二、配置Tomcat
1、将下载Tomcat Zip压缩包解压。
2、修改\bin\startup.bat文件:
在第一行前面加入如下两行:
SET JAVA_HOME=JDK目录
SET CATALINA_HOME=前面解压后Tomcat的目录或者%cd%
如果需要使用shutdown.bat关闭服务器的话,也按照上面加入两行。
3、这样,运行startup.bat就可以运行服务器,运行shutdown.bat就可以关闭服务器了。
4、修改\conf\tomcat-users.xml文件:
在<tomcat-users>标签内加入
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin,manager"/>
这样才可以使用Tomcat的管理界面。
三、将Tomcat加入服务
1、修改bin目录中的service.bat:
REM 添加下面的一行
set CATALINA_HOME=%cd%
如果从来没有安装过Tomcat,或者保证Services.msc启动服务管理器检查没有Apache Tomcat系统服务,到此你就可以转到第二步了。否则继续往下走
REM 按照描述修改下面的几行
set SERVICE_NAME=Tomcat5
REM 上面一行,Tomcat5修改成你需要的服务名,这个将是一后使用net start/stop来操作的服务名称。
set PR_DISPLAYNAME=Apache Tomcat
REM 上面一行,Apache Tomcat改为你需要的显示服务名,这个将显示在服务管理器中。
set PR_DESCRIPTION=Apache Tomcat Server - http://jakarta.apache.org/tomcat
REM 这一行改不改无所谓,是服务的描述,根据自己的喜好决定吧。
2、运行cmd打开控制台,进入Tomat目录/bin文件夹,输入如下命令运行。
service.bat install
程序提示:The service 'Tomcat5(或者你修改一后的SERVICE_NAME)' has been installed
说明服务Tomcat已经被安装成功。
顺便说一下,运行service.bat remove可以移除服务。
3、到这里,服务添加成功,运行services.msc,可以看到添加的服务,默认状态下该服务是手动运行的,在他的属性中,将启动类型更改为“自动”,以后机器启动以后Tomcat就在后台启动了。
四、控制台控制服务的命令
启动服务
net Start 服务名
关闭服务
net stop 服务名
注:
1、此服务名可以是SERVICE_NAME,也可以是PR_DISPLAYNAME;
2、如果服务名中包含空格或者中文,请将服务名用半角双引号包含起来。
如果是免安装版。是不是点start.up一闪而过。没有配置JDK,我也不知道怎么他妈的配置JDK。反正就是tomcat找不到JDK,我们用记事本打开,在上面加两行,
SET JAVA_HOME=JDK目录
SET CATALINA_HOME=前面解压后Tomcat的目录或者%cd%
就可以了,要关闭的话也是这样
Tomcat(免安装版)的安装与配置
一、下载Tomcat
Tomcat可以从http://tomcat.apache.org/网站下载,选择任意版本,在 Binary Distributions 下的zip包既是。
二、配置Tomcat
1、将下载Tomcat Zip压缩包解压。
2、修改\bin\startup.bat文件:
在第一行前面加入如下两行:
SET JAVA_HOME=JDK目录
SET CATALINA_HOME=前面解压后Tomcat的目录或者%cd%
如果需要使用shutdown.bat关闭服务器的话,也按照上面加入两行。
3、这样,运行startup.bat就可以运行服务器,运行shutdown.bat就可以关闭服务器了。
4、修改\conf\tomcat-users.xml文件:
在<tomcat-users>标签内加入
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin,manager"/>
这样才可以使用Tomcat的管理界面。
三、将Tomcat加入服务
1、修改bin目录中的service.bat:
REM 添加下面的一行
set CATALINA_HOME=%cd%
如果从来没有安装过Tomcat,或者保证Services.msc启动服务管理器检查没有Apache Tomcat系统服务,到此你就可以转到第二步了。否则继续往下走
REM 按照描述修改下面的几行
set SERVICE_NAME=Tomcat5
REM 上面一行,Tomcat5修改成你需要的服务名,这个将是一后使用net start/stop来操作的服务名称。
set PR_DISPLAYNAME=Apache Tomcat
REM 上面一行,Apache Tomcat改为你需要的显示服务名,这个将显示在服务管理器中。
set PR_DESCRIPTION=Apache Tomcat Server - http://jakarta.apache.org/tomcat
REM 这一行改不改无所谓,是服务的描述,根据自己的喜好决定吧。
2、运行cmd打开控制台,进入Tomat目录/bin文件夹,输入如下命令运行。
service.bat install
程序提示:The service 'Tomcat5(或者你修改一后的SERVICE_NAME)' has been installed
说明服务Tomcat已经被安装成功。
顺便说一下,运行service.bat remove可以移除服务。
3、到这里,服务添加成功,运行services.msc,可以看到添加的服务,默认状态下该服务是手动运行的,在他的属性中,将启动类型更改为“自动”,以后机器启动以后Tomcat就在后台启动了。
四、控制台控制服务的命令
启动服务
net Start 服务名
关闭服务
net stop 服务名
注:
1、此服务名可以是SERVICE_NAME,也可以是PR_DISPLAYNAME;
2、如果服务名中包含空格或者中文,请将服务名用半角双引号包含起来。
[2] 堵塞队列
来源: 互联网 发布时间: 2014-02-18
阻塞队列
ArrayBlockingQueue
LinkedBlockingQueue
SynchronousQueueproducer
// 如果队列满则阻塞
blockingQ.put(object);
阻于生产者-消费者模式。
consumer
for(;;) {
blockingQ.take(); // 如果队列空则阻塞
}
Queue<E>
add(E) : boolean
offer() : boolean
remove() : E
poll() : E
element() : E
peek() : E
使用BlockingQueue的时候,尽量不要使用从Queue继承下来的方法,否则就失去了Blocking的特性了。
BlockingQueue<E>
put(E)
take() : E
offer(E, long, TimeUnit) : boolean
poll(long, TimeUnit) : E
remainingCapacity()
drainTo(Collection<? super E>) : int
drainTo(Collection<? super E>, int) : int
在BlockingQueue中,要使用put和take,而非offer和poll。如果要使用offer和poll,也是要使用带等待时间参数的offer和poll。
使用drainTo批量获得其中的内容,能够减少锁的次数。
ArrayBlockingQueue
LinkedBlockingQueue
SynchronousQueueproducer
// 如果队列满则阻塞
blockingQ.put(object);
阻于生产者-消费者模式。
consumer
for(;;) {
blockingQ.take(); // 如果队列空则阻塞
}
Queue<E>
add(E) : boolean
offer() : boolean
remove() : E
poll() : E
element() : E
peek() : E
使用BlockingQueue的时候,尽量不要使用从Queue继承下来的方法,否则就失去了Blocking的特性了。
BlockingQueue<E>
put(E)
take() : E
offer(E, long, TimeUnit) : boolean
poll(long, TimeUnit) : E
remainingCapacity()
drainTo(Collection<? super E>) : int
drainTo(Collection<? super E>, int) : int
在BlockingQueue中,要使用put和take,而非offer和poll。如果要使用offer和poll,也是要使用带等待时间参数的offer和poll。
使用drainTo批量获得其中的内容,能够减少锁的次数。
[3] 兑现一个简单的阻塞队列
来源: 互联网 发布时间: 2014-02-18
实现一个简单的阻塞队列
classBlockingQ{
privateObject notEmpty= newObject();
privateQueue<Object> linkedList= new LinkedList<Object>();
publicObject take() throwsInterruptedException{
synchronized(notEmpty) {
if(linkedList.size() == 0) {
notEmpty.wait(); 要执行wait操作,必须先取得该对象的锁。执行wait操作之后,锁会释放。被唤醒之前,需要先获得锁。
}
returnlinkedList.poll();
}
}
publicvoidoffer(Object object) {
synchronized(notEmpty) {
if(linkedList.size() == 0) {
notEmpty.notifyAll();要执行notify和notifyAll操作,都必须先取得该对象的锁。
}
linkedList.add(object);
}
}
}
未取得锁就直接执行wait、notfiy、notifyAll会抛异常
classBlockingQ{
privateObject notEmpty= newObject();
privateQueue<Object> linkedList= new LinkedList<Object>();
publicObject take() throwsInterruptedException{
synchronized(notEmpty) {
if(linkedList.size() == 0) {
notEmpty.wait(); 要执行wait操作,必须先取得该对象的锁。执行wait操作之后,锁会释放。被唤醒之前,需要先获得锁。
}
returnlinkedList.poll();
}
}
publicvoidoffer(Object object) {
synchronized(notEmpty) {
if(linkedList.size() == 0) {
notEmpty.notifyAll();要执行notify和notifyAll操作,都必须先取得该对象的锁。
}
linkedList.add(object);
}
}
}
未取得锁就直接执行wait、notfiy、notifyAll会抛异常
最新技术文章: