关于解决 Java 编程语言线程问题的建议(1)(转)
关于解决 Java 编程语言线程问题的建议(1)(转)[@more@]Allen Holub自由撰稿人内容:task(任务) 的概念synchronized 关键字wait 和 notify 方法修定 thread 类线程间的协作读写锁部分创建的对象volatile 关键字访问的问题后台程序的突然结束重新引入 stop、suspend 和 resume被阻断的 I/OthreadGroup 类总结参考资料作者简介Allen Holub 指出,Java 编程语言的线程模型可能是此语言中最薄弱的部分。它完全不适合实际复杂程序的要求,而且也完全不是面向对象的。本文建议对 Java 语言进行重大修改和补充,以解决这些问题。Java 语言的线程
安全攻略access篇:从手工注入看防御(转)
安全攻略access篇:从手工注入看防御(转)[@more@]很多情况下,入侵者在使用工具注入时发现工具才解不出来表名和字段名,那是因为所有的工具都有自己的一部字典,这部字典内包括了表名和字段名,如果管理员把表名和字段名改成了不在这部字典内,那么我们使用的工具将无法猜解出字段名和表名。在以下的文章中,将从分析手工注入出发,来打造抵御SQL注入的防线。 入侵者将会构造简单的判断条件,来判断该页面是否存在注入漏洞,一般步骤如下: 这里要检测的页面为http://127.0.0.1/111/view.asp?id=198 1.入侵者要想对站点进行手工注
关于解决 Java 编程语言线程问题的建议(2)(转)
关于解决 Java 编程语言线程问题的建议(2)(转)[@more@]在《Taming Java Threads》的第八章中,我给出了一个服务器端的 socket 处理程序,作为线程池的例子。它是关于使用线程池的任务的一个好例子。其基本思路是产生一个独立对象,它的任务是监控一个服务器端的 socket。每当一个客户机连接到服务器时,服务器端的对象会从池中抓取一个预先创建的睡眠线程,并把此线程设置为服务于客户端连接。socket 服务器会产出一个额外的客户服务线程,但是当连接关闭时,这些额外的线程将被删除。实现 socket 服务器的推荐语法如下:public $pooled
关于解决 Java 编程语言线程问题的建议(3)(转)
关于解决 Java 编程语言线程问题的建议(3)(转)[@more@]修改 Thread 类同时支持抢占式和协作式线程的能力在某些服务器应用程序中是基本要求,尤其是在想使系统达到最高性能的情况下。我认为Java 编程语言在简化线程模型上走得太远了,并且 Java 编程语言应支持Posix/Solaris 的“绿色(green)线程”和“轻便(lightweight)进程”概念(在“(Taming Java Threads”第一章中讨论)。这就是说,有些 Java 虚拟机的实现(例如在 NT 上的 Java 虚拟机)应在其内部仿真协作式进程,其它Java 虚拟机应仿真抢占式线程。而且向 Java 虚拟机加入这些
数据安全:海洋顶端2006+密码编码分析(转)
数据安全:海洋顶端2006+密码编码分析(转)[@more@]海洋顶端是很出名的 ASP 木马,我从红粉佳人版本开始就一直用它,也算是它的fans了,今年海洋顶端出了最新版本也是最后一个版本 —— 2006Plus。身为fans,自然要拿来用用才是,初次使用感觉有了几个变化:界面变了,文件浏览不再是图标形式;所有动作改为POST方式提交;功能增加;……唉呀,赶紧打住,再写就变成广告了^_^ 海洋顶端以往的各个版本密码都是明文存放的,这回 2006+ 专门有个 vbs 脚本用于加密密码。这几天闲得无聊,就来尝试分析一下它的加密方式。 加密密码的脚本是
关于解决 Java 编程语言线程问题的建议(4)(转)
关于解决 Java 编程语言线程问题的建议(4)(转)[@more@]访问的问题如果缺少良好的访问控制,会使线程编程非常困难。大多数情况下,如果能保证线程只从同步子系统中调用,不必考虑线程安全(threadsafe)问题。我建议对Java 编程语言的访问权限概念做如下限制;应精确使用 package关键字来限制包访问权。我认为当缺省行为的存在是任何一种计算机语言的一个瑕疵,我对现在存在这种缺省权限感到很迷惑(而且这种缺省是“包(package)”级别的而不是“私有(private)”)。在其它方面,Java 编程语言都不提供等同的缺省关键字。虽然使用显式的 pa
网络安全管理:三分技术加七分管理(转)
网络安全管理:三分技术加七分管理(转)[@more@]企业该如何在有限的资金条件下,达到投入与安全的平衡? 目前很多网络安全技术还处于探索阶段,如果人云亦云地简单购买安全产品,那么,这个所谓的“IT黑洞”永远无法填满。 安全管理是填补“IT黑洞”最经济有效的方式。 防病毒:要求病毒代码每周至少升级2~3次; 漏洞扫描:要求定期对网络扫描,发现系统的漏洞,指导打补丁; 网络入侵检测系统:随着网络结构和应用的变化调整重点预警区,不但要求网管员了解预警产品的功能及响应,还必须正确配置交换机监听端口。 一、领
关于线程的讲解(出自Java原著)(转)
关于线程的讲解(出自Java原著)(转)[@more@]Thread SchedulingIn Java technology,threads are usually preemptive,but not necessarily Time-sliced(the process of giving each thread an equal amount of CPU time).It is common mistake to believe that "preemptive" is a fancy word for "does time-slicing".For the runtime on a Solaris Operating Environment platform,Java technology does not preempt threads of the same priority.However,the runtime on Microsoft Windows platforms uses time-slicing,so it preempts th
病毒横行安全展会 安全公司颜面扫地(转)
病毒横行安全展会 安全公司颜面扫地(转)[@more@]在今年在伦敦举行的信息安全展示会期间,由于展示会提供的无线网络并不安全而且病毒横行,导致那些出席展示会的IT界各大安全公司由于没有做到它们所鼓吹的安全保护性而颜面扫地。 MacAfee公司设置的安全扫描器对展示会无线网络进行了检查,结果发现这个无线网络没有采取任何加密保护措施,而且还在使用默认口令设置。而且展示会期间运行的许多网络还感染了大量的病毒。 McAfee公司的安全顾问Greg Day说:“这真是一件怪事,简直让人想不通。在这些病毒中,有一些病毒甚至是过去的老
JAVA 的多线程浅析(转)
JAVA 的多线程浅析(转)[@more@]· 一、JAVA 语言的来源、及特点在这个高速信息的时代,商家们纷纷把信息、产品做到Internet国际互连网页上。再这些不寻常网页的背后,要属功能齐全、安全可靠的编程语言,Java是当之无愧的。Java是由Sun Microsystem开发的一种功能强大的新型程序设计语言。是与平台无关的编程语言。它是一种简单的、面象对象的、分布式的、解释的、键壮的、安全的、结构的中立的、可移植的、性能很优异的、多线程的、动态的、语言。Java自问世以后,以其编程简单、代码高效、可移植性强,很快受到了广大计算机编程人士的青
Java开发中的线程安全选择与Swing(转)
Java开发中的线程安全选择与Swing(转)[@more@]Swing API的设计目标是强大、灵活和易用。特别地,我们希望能让程序员们方便地建立新的Swing组件,不论是从头开始还是通过扩展我们所提供的一些组件。 出于这个目的,我们不要求Swing组件支持多线程访问。相反,我们向组件发送请求并在单一线程中执行请求。 本文讨论线程和Swing组件。目的不仅是为了帮助你以线程安全的方式使用Swing API,而且解释了我们为什么会选择现在这样的线程方案。 本文包括以下内容: 单线程规则:Swing线程在同一时刻仅能被一个线程所访问。一般来说,
Rational的Linux应用程序开发解决方案(转)
Rational的Linux应用程序开发解决方案(转)[@more@]用于Linux 开发的Rational 工具 Rational 软件提供了综合的解决方案,让您可以利用 Linux 构建、集成、扩展、改造和部署软件。凭借对软件生命周期中所有角色和活动的广泛支持,IBM 软件开发平台、Rational 产品支持开发和 Linux 环境下的开发。 Rational 对Linux 的支持主要集中在以下两个方面:通过综合的 IDE 支持方便了 Linux应用程序的开发;通过为管理软件资产提供基于Linux 的平台支持降低了软件开发基础设施的总体拥有成本。 Rational 产品家族包括: 需求和分析工具。此产品
线程转储:命名你的线程和查看系统(转)
线程转储:命名你的线程和查看系统(转)[@more@]虽然集成开发环境(IDE)可以为图形化应用程序提供很好的调试设置,但是它不允许你调试多线程的Java服务器程序。幸运的是,有几个工具可以做到,例如日志应用程序接口(API)和Java调试器。开发人员也可以获得系统的线程转储,它可以在任何时间显示出系统状态。为了得到系统线程转储,运行服务器程序并键入[Ctrl] []。这会输出所有正在执行的线程。例如:^Full thread dump:Thread-1" prio=5 tid=0x87fe0 nid=0x800013b8 waiting on monitor [0..0xbfffe9f8]"Thread-0" prio=5 tid=0xafde0 nid=0
彻底明白Java的多线程-线程间的通信(1)(转)
彻底明白Java的多线程-线程间的通信(1)(转)[@more@]三. 线程间的通信1. 线程的几种状态线程有四种状态,任何一个线程肯定处于这四种状态中的一种:1) 产生(New):线程对象已经产生,但尚未被启动,所以无法执行。如通过new产生了一个线程对象后没对它调用start()函数之前。2) 可执行(Runnable):每个支持多线程的系统都有一个排程器,排程器会从线程池中选择一个线程并启动它。当一个线程处于可执行状态时,表示它可能正处于线程池中等待排排程器启动它;也可能它已正在执行。如执行了一个线程对象的start()方法后,线程就处于可执
浅谈Linux优化及安全配置个人体会(转)
浅谈Linux优化及安全配置个人体会(转)[@more@]前言: 很久没有写过文章了,最近收到不少朋友来信,提及了有关优化配置和一些新的安全问题,在此我想和大家浅显讨论一下这些问题,有什么不准确和有更好的方式,请给我来信共同讨论提高。 在网上看到不少有关linux优化方面的好文章,在此我也不赘述这些文章了,我只想从我自己的体会来谈谈这方面的问题。 作为一个系统管理员,我下面说的都是基于服务器应用的linux来谈的,由于个人电脑上使用linux也许不是像服务器上一样,优先追求安全和稳定,因此个人电脑使用的朋友只做个参考吧。 本文提
彻底明白Java的多线程-线程间的通信(2)(转)
彻底明白Java的多线程-线程间的通信(2)(转)[@more@]2.4 sleep()和yield()的区别1) sleep()使当前线程进入停滞状态,所以执行sleep()的线程在指定的时间内肯定不会执行;yield()只是使当前线程重新回到可执行状态,所以执行yield()的线程有可能在进入到可执行状态后马上又被执行。2) sleep()可使优先级低的线程得到执行的机会,当然也可以让同优先级和高优先级的线程有执行的机会;yield()只能使同优先级的线程有执行的机会。例15:class TestThreadMethod extends Thread{public static int shareVar = 0;public TestThreadMethod(Strin
多线程学习初步(转)
多线程学习初步(转)[@more@]import java.io.*;//多线程编程public class MultiThread{public static void main(String args[]){System.out.println("我是主线程!");//下面创建线程实例thread1ThreadUseExtends thread1=new ThreadUseExtends();//创建thread2时以实现了Runnable接口的THhreadUseRunnable类实例为参数Thread thread2=new Thread(new ThreadUseRunnable(),"SecondThread");thread1.start();//启动线程thread1使之处于就绪状态//thread1.setPriority(6);//设置thread1的优先级为6//优先级将决定cpu空出时,处于就绪状态的线程
liunx用户空间和内核空间之间的通信实现(在PPC下的实现)(转)
liunx用户空间和内核空间之间的通信实现(在PPC下的实现)(转)[@more@]系统调用用户空间和内核空间之间的通信实现● 与系统调用相关的数据结构和函数系统调用函数名以“sys_”开头,后面是该系统调用的名字,由此构成了221个形似sys_name()的函数名。include/asm-i386/unistd.h中为每一个系统调用规定了惟一的编号,假设用name来表示系统调用的名称,那么系统调用号与系统调用响应函数的关系是:以系统调用号__NR_name作为下标,可找出系统调用表sys_call_table中对应表项的内容,它也就是该系统调用的响应函数sys_name的入口地址。● 系统调
java线程编程(一):线程基础(转)
java线程编程(一):线程基础(转)[@more@]在学习java中,我发现有关于对线程的讲解比较少,我打算为一些java初学者提一些关于线程方面的参考,为深入学习java奠定基础。我本着共同进步的原则特写下了关于java线程编程的一系列文章java线程编程(一):线程基础◆线程(thread)其实是控制线程(thread of control)的缩写.每一个线程都是独立的,因此线程中的每个方法的局部变量都是和其他线程隔离开的,这些变量完全是私有的,因此对于线程而言,是没有办法访问其他线程的局部变量的。如果两个线程同时访问同一个方法,则每个线程得到一
关于多线程(转)
关于多线程(转)[@more@]我这里可以大概给你介绍一下,但对于每一种编程模型要看具体的示例是什么,而且我不可能给你罗列所有的代码,请谅解。其实我们编程只要尽量站到比较高的层次,很多道理其实你会发现你已经懂了。就多线程来说,我们开始设想只有两个线程(>2时是不是算数学归纳法?)那么如果两个独立的线程会发生什么呢?1。当一个线程进入moniter(也就是说站用一个object),另一个线程只有等待或返回,而我们把返回就称为一种模式,这种模式的英文是Balking。2。这两个线程可以是有序的执行,而不是让OS来调度,这时我们要用一