这张图的机场安全风险依然存在是真实存在的么?飞机这么降落真的不会有问题么?

ZookeeperNet太难用,写了个RetryHelper来进行配套使用-McKay
&nbsp>&nbsp&nbsp>&nbspZookeeperNet太难用,写了个RetryHelper来进行配套使用-McKay
时间: 14:25:57
公众号:McKay
普通的zk用法,如下写法:zk.Exists("/aaa", true);zk.Create(...);但是由于这些API会抛Zookeeper的Exception,比如ConnectionLossException, NoNodeException等,所以必须配合一堆try/catch的机制来catch错误,catch后再处理...写起来很麻烦因此写了个RetryHelper来封装上面这个try/catch行为,用起来也比较方便,如下:RetryHelper helper=RetryHelper.Make();helper.CreateNodeStructure = () =& { Console.WriteLine("CreateNodeStructure"); };helper.FixConnectionLossAction = () =& { Console.WriteLine("FixConnectionLossAction");};helper.IfErrorThen = () =& { Console.WriteLine("IfErrorThen"); };helper.Execute(() =&{
this.zk.GetChildren(...);});上面的意思是如果在Execute中,如果报错了,则会看报错的是哪种类型,如果是ConnectionLoss则执行FixConnectionLossAction委托,如果是NoNode则执行建立节点的委托也就是将最常见的2个zookeeper动作给结构化了:建立节点目录结构以及连接丢失时的重新连接动作RetryHelper代码:public class RetryHelper
private int retryDelay = 500;
private long signal = 0;
public Action IfErrorT
public Action CreateNodeS
public Action FixConnectionLossA
public static RetryHelper Make()
return new RetryHelper();
public void Execute(Action action)
while (true)
catch (ZooKeeperNet.KeeperException.NoNodeException ex)
//create node structure
Console.WriteLine("retry helper NoNodeException: " + ex.Message);
if (CreateNodeStructure != null)
RetryHelper.Make().Execute(CreateNodeStructure);
catch (ZooKeeperNet.KeeperException.ConnectionLossException ex)
Console.WriteLine("retry helper ConnectionLossException: " + ex.Message);
long attempSignal = Interlocked.Read(ref signal);
while (Interlocked.Read(ref signal) & 0)
Thread.Sleep(retryDelay);
if (attempSignal == 0)
Interlocked.Increment(ref signal);
if (FixConnectionLossAction != null)
RetryHelper.Make().Execute(FixConnectionLossAction);
Interlocked.Decrement(ref signal);
catch (Exception ex)
Console.WriteLine("retry helper catch: " + ex.Message);
Thread.Sleep(retryDelay);
if (IfErrorThen != null)
IfErrorThen();
}仔细看上面代码的朋友肯定也注意到里面catch connectionloss exception的代码块中使用了Interlocked,这是因为:在多线程系统侠,如果zk连接丢失了,由于多个地方都在尝试zk操作,所以会导致并发性的进入catch loss connection exception代码处理块,如果此时不加判断的处理所有并发请求,则会出现连接多次到zk,严重影响性能;因此,这里的代码实际上意图是将多次连接请求合并为一次连接。此处特别感谢我同事的code review,哈哈。下面是个测试并发消除的demo,为了让结果清晰,我把RetryHelper的catch中的Console.WriteLine注释了static void Main(string[] args)
RetryHelper helper=RetryHelper.Make();
helper.CreateNodeStructure = () =& { Console.WriteLine("CreateNodeStructure"); };
helper.FixConnectionLossAction = () =&
Console.WriteLine(Thread.CurrentThread.ManagedThreadId+" FixConnectionLossAction BEGIN "+DateTime.Now.ToString());
Thread.Sleep(2000);
Console.WriteLine(Thread.CurrentThread.ManagedThreadId + " FixConnectionLossAction END " + DateTime.Now.ToString());
helper.IfErrorThen = () =& { Console.WriteLine("IfErrorThen"); };
var tasks=new List&Task&();
for (int i = 0; i & 10; i++)
var task = new Task(() =& {
helper.Execute(() =&
throw new ZooKeeperNet.KeeperException.ConnectionLossException();
tasks.Add(task);
tasks.ForEach(t=&t.Start());
Task.WaitAll(tasks.ToArray());
Console.ReadKey();
}运行:code download扫二维码下载作业帮
2亿+学生的选择
下载作业帮安装包
扫二维码下载作业帮
2亿+学生的选择
设有n个机场,每一机场起飞一架飞机,飞机离出发机场最近的机场降落,且任意两机场之间的距离都不相等.证明:任一机场降落的飞机最多是5架.(提示:利用三角形的性质)
尧少3023456
扫二维码下载作业帮
2亿+学生的选择
假设一机场A降落的飞机是6架,则必有6个机场以A为距离最近的机场,设这6个机场分别为B,C,D,E,F,G(则有BA
为您推荐:
其他类似问题
扫描下载二维码十周年苹果发布会,不知道这一次在发布会上又会出现什么惊奇的演示APP。
随着 iPhone 8 的到来,我们也要开始进入面部识别时代了。新机所搭载的独特技术,据说...
当我们开始全方位接入网络,就会更在意手机安全指数,今后的手机安全 App 们发挥的作...
面对办事拖沓,出尔反尔的印度政府,加上食之无味,弃之可惜的印度市场,或许苹果真要...
在 iOS 11 系统中,后台应用刷新不再是一个简单的开关。
新的 Siri 听起来更加舒服,也能更好地理解用户的意图。
现在就让我们对今年的一些优秀机型进行回顾吧。
新 MacBook Pro 设备端口向 USB-C 过渡,iPhone 7 取消了 3.5mm 耳机接口,然而 Beats...
从 PC 端到移动端,我们最爱的三国志回来了。
在平面设计世界,汉字是人类社会有史以来最伟大最成功的设计。
已经改旗易帜的知名手机游戏厂商 Gameloft 最近又有了新的动作,他们在全球范围内推出...
原著小说千万销量,动漫班底声优献声,预约阶段场面火爆,网易游戏呕血自研!不得不说...
如今这个满眼都是“屠龙宝刀油腻师姐点击就送开局只有一条狗”的辣眼网络文案世界,《...
早就已经在 Steam 上闯出名堂的独立游戏《归家异途》在无数玩家期盼的目光当中,于今...
《Dungeon Time Turbo》这款游戏的主题便是在地牢中探索,游戏采用俯瞰的方式进行,玩...
新 MacBook Pro 设备端口向 USB-C 过渡,iPhone 7 取消了 3.5mm 耳机接口,然而 Beats...
好吧,它们可能看起来很奇怪,但无线耳机能否成为我们与电脑互动的关键方式呢?
DockCase 保护壳解决了 MacBook Pro 的最大难题。
这款产品让 iPhone 用户更容易备份文件以及扩大存储。
在某些情况下,通过无线进行文件传输的效率依然赶不上物理介质。
从规格来说,你觉得这款摄像头怎么样?
品胜起诉苹果 MFI 认证涉嫌垄断,已经获得了北京知识产权法院立案受理。
这个配件刚刚开启众筹就超额完成目标了~
本主题需要才能查看,如没有账号,戳我!
威锋旗下产品
Hi~我是威威!
沪公网安备 29号 | 沪ICP备号-1
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!为什么飞机场跑道起飞和降落都是一条,起飞的不能降落,多建几条岂不效率更高?
相信很多人都有这样的疑问:为什么飞机场跑道起飞和降落都是一条,起飞的不能降落,多建几条岂不效率更高?
首先,机场跑道的作用是起降飞机的,飞机在逆风时起飞和降落,因此飞机跑道的方向需要与当地常年的风向保持一致。以首都机场为例,北京经常刮的是南北方向的风,因此跑道是正南正北方向修建的,就是保障飞机在大多数情况下都是正对着逆风起飞和降落。
最初民航客机航班量小,一条跑道足以满足起降需要。后来航班量大了,为了增加机场容量和出于安全的考虑,会修建两条或多条跑道。国内多跑道机场大部分是双平行跑道,运行模式有四种,其中有一种是隔离平行运行,一条跑道只用于起飞,另一条只用于降落。
下图的芝加哥奥黑尔机场,一共有9条跑道,4个航站楼,在不同风向时可以在不同方向时保障飞机起降任务,因此可并不是机场跑道只有一条。
首都机场目前有3条跑道同时运行,西跑道(36L/18R)和东跑道(01/19)一般用作主起飞,中跑道(36R/18L)作为主降落跑道。这是因为首都机场每天的航班最高峰已经超过1900架次,日均航班也已经超过1700架次,因而需要3条跑道同时运行来保障如此多的航班量。目前,北京还在建新机场以满足航班日益增长的需求。
但是并不是所有机场都需要第二条甚至第三条跑道,有些城市的机场每天航班起降次数不超过个位数,一条跑道完全可以满足航班起降的需求,因而就不需要专门单独建起飞和降落跑道。
最后,飞机起降和飞行是在固定空中走廊进行,航班量增大,空域拥堵越来越严重,流控现象也日益增多,这种情况并不能通过扩建跑道和新建机场来解决,因为即便起降不用排队、地面滑行不拥堵了,起飞之后出境的空中走廊依然只有固定的几个,航班流控依然会出现。就好比开车上高速很堵车,但是把停车场到高速入口修宽了依然会堵一样无济于事。
深圳宝安机场就有两条跑道,一条起飞一条降落,而且不固定哪条起飞哪条降落。
原来是这样啊
长知识的请点赞!
来源:悟空回答
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点}

我要回帖

更多关于 精索静脉曲张真实图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信