从事Java开发的注意事项

从事Java开发的注意事项,第1张

快要变身为Java开发工程师的同学们,你们了解了Java开发的工作了吗初入职场,如果对你即将要做的工作没有了解,一定会有较长的磨合期的,所以,IT培训为大家分享从事Java开发注意事项。

1、将一些需要变动的配置写在属性文件

若没有把一些需要并发执行时使用的线程数设置成可在属性文件中配置。那么你的程序无论在DEV环境中,还是TEST环境中,都可以顺畅无阻地运行,但是一旦部署在PROD上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,也许是线上环境并发造成,也许是其他。如果线程数目可以在属性文件中配置,那么使它成为一个单线程应用程序就变得十分容易了。方法同样适用于配置URL、服务器和端口号等。

2、测试中尽可能模拟线上环境

生产过程中一个典型的场景就是只使用1到3个帐户进行测试,而这个数量本应是1000到2000个的。在做性能测试时,使用的数据必须是真实并且未经裁剪的。不贴近真实环境的性能测试,可能会带来不可预料的性能、拓展和多线程问题。这里也可以采取预发布环境的方式来解决部分问题。

3、对于所有外部调用以及内部服务都要做容错处理

不管是RPC调用还是对于第三方服务的调用,都不能想当然的认为可用性是100%的。不允许出现服务调用超时和重试,将会对应用程序的稳定性和性能造成不利的影响。

4、安全设计上一个系统要遵循最小权限原则

网络服务随处可见,从而使得黑客可以轻易地利用它进行拒绝服务攻击。设计系统时,需要遵循"最小权限"原则,采用白名单等方式。

5、需要提供以下文档

编写单元测试文档并使其拥有良好的代码覆盖率。

高层次的设计图:描述了所有的组件,交互和结构。

详细的设计图:具体到代码层面的设计,以及一些关键逻辑的流程。

系统组成文档:说明系统的所有组成文件、配置文件等。

数据库层面的dml以及ddl文档,尤其是sql查询语句需要经过dba或者核心开发人员的review才能够上线。

众所周知,为了防范蠕虫病毒的传播和攻击,Windows XP SP2将并发线程最多限制为10个。SP2利用Messages动态链接库,来实时监控每个进程的并发线程数目,一旦它发现某进程的线程数超过10个,就会屏蔽掉部分线程。SP2这样做,虽然可以防范震荡波类型的蠕虫病毒,加强系统安全,但是也带了一些负面影响,例如当你使用BT、P2P或FlashGet软件下载时,部分线程将被屏蔽掉,因此下载速度会变得很慢。为此,你可以采取以下对策,来突破TCP并发连接数,从而提高SP2的多线程访问速度。

一、注册表修改法的误区

为了突破SP2对TCP并发连接数的限制,网上曾经流传过一种修改注册表的方法, *** 作步骤如下:

单击“开始”/运行,输入Regedit打开注册表,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下,修改的“TcpNumConnections”的键值,将之由10改为150,即设置TCP最大并发连接数为150。

经过实际测试,我们发现该方法看起来有效,但实质上并不能突破并发连接数限制,提高SP2的多线程访问速度。因为SP2对线程数目的控制,是通过“Tcpipsys”这个系统文件来实现的,并不是通过注册表实现的,因此,该方法不能增加SP2的TCP并发连接数。

二、使用工具来替换Tcpip.sys

为了突破SP2的TCP并发连接数限制,正确地方法是修改Windows XP SP2的系统文件Tcpipsys。Tcpipsys是Windows XP SP2重要的系统文件,位于“C:\Windows\system32\drivers目录下。该文件由于平时受到系统保护,所以正常情况下你是无法替换它的,必须在安全模式或纯DOS模式下才能替换,建议你使用以下专门工具、来替换“Tcpipsys”文件, *** 作步骤如下:

从网上>

只是线程数太多的话不会占用太多的CPU和内存,多几个线程过非多些线程的控制块,多些CPU的进程切换,现在的CPU那么快影响不到那去

程序的线程数一般是越少越好,如果多了,多个线程间的数据共享,同步就是问题,随着线程数的增多线程间的数据交换同步就难以控制,程序容易崩溃

多线程不能解决程序运行速度的问题,主要解决多任务问题

以下是对在linux环境下一个进程最多能有多少个线程进行了介绍,需要的朋友可以过来参考下

默认情况下:

主线程+辅助线程 +<253个自己的线程<=255

含主线程和一个辅助线程,最多255个,即你自己只能生成253个线程。

据说可以设置线程数目:

据说是可以设置的,但本人还没有验证!不知道可否。

在你的shell中键入limit命令,里面有descriptor的数目,就是你的进程可以创建的最大线程数目。可以通过修改内核文件更改该数目。

在这里,先回顾一下OpenMP的parallel并行区域线程数量的确定,对于一个并行区域,有一个team的线程去执行,那么该分配多少个线程去执行呢?

OpenMP的遇到parallel指令后创建的线程team的数量由如下过程决定:

1 if子句的结果

2 num_threads的设置

3 omp_set_num_threads()库函数的设置

4 OMP_NUM_THREADS环境变量的设置

5 编译器默认实现(一般而言,默认实现的是总线程数等于处理器的核心数)

(查看更多信息)

2、3、4优先级依次降低的,也就是前面的设置可以覆盖后面的设置,当然也是相对而言,num_threads子句只会影响当前的并行区域,而omp_set_num_threads对OMP_NUM_THREADS环境变量的覆盖是在整个程序运行期间全局的。

(2)几个容易混淆的OpenMP函数

1 omp_get_thread_num

获取线程的num,即ID。这里的ID是OpenMP的team内的ID,在OpenMP中,一个team内的线程的ID是俺顺序排列的,0、1、2

说明:此函数在并行区域外或者并行区域内都可以调用。在并行区域外,获取的是master线程的ID,即为0。在并行区域内,每次执行到此函数,获取的是当前执行线程的ID。

默认的是5。

首先需要明白,原始下载地址与候选资源的区别。

原始下载地址是您建立下载任务时,该资源指向的最终下载服务器上的文件地址。

候选资源是下载软件为用户在网络上搜集到的该文件其他下载地址。

较早的IE下载是使用单线程的下载技术,可以简单的理解为用户端与服务器端仅仅只有一座桥梁,数据传送只能靠这一座桥梁来完成。我们可以把这个桥梁当作是线程。

线程是程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同的工作,称为多线程。

线程数的设置

线程数的多少,自然会影响到下载速度的多少,这样看来,下载线程数应该设置的越高越好,这样的理解是错误的。

假设从服务端传送数据到用户端,把用户端和服务端比做两个小岛,线程数比做连接两个小岛之间的桥梁,架桥越多,单位时间内传送的数据越多,但如果桥梁架设超过双方所能承受的数量时,用户端将无法接受其他服务端的数据,而服务端将无法为其他用户端传送数据,因此,线程数的多少,要根据服务端和用户端的具体情况而定。

目前网络中的服务端,为用户提供的连接线程数,在1-10个,用户可以根据不同的服务端限制,来修改下载软件的原始下载线程数。根据下载资源的热门程度,其候选资源数量的不同,该任务下载可用的线程数也会不同,一般可以设置在35-50之间,这样的设置不会导致您电脑的连接数过多,而无法从事其他网络活动。

以上就是关于从事Java开发的注意事项全部的内容,包括:从事Java开发的注意事项、怎样开启多线程.XP默认是10个线程,BT需要200以上,、多线程编程,如何确定线程数,依据是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10633089.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存