小编Chi*_*pen的帖子

在Python中带箭头的简单2d表面?

我以前没有在python工作过.我需要做一个非常简单的2d表面,我可以放置一个箭头然后能够改变箭头的位置和角度.

我开始在tkinter中构建类似的东西,但据我所知,你无法旋转图像.据我所知,只有多边形可以旋转.将箭头绘制为多边形似乎有点过于复杂.

还有其他一些工具更适合这种简单的东西吗?

谢谢

python 2d canvas tkinter rotation

5
推荐指数
2
解决办法
2690
查看次数

允许多个获取同步getter/setter

获得对字段的访问的常用方法是同步getter和setter.使用int的简单示例如下所示:

private int foo = 0;
public synchronized int get(){return this.foo;}
public synchronized void set(int bar){ this.foo = bar;}
Run Code Online (Sandbox Code Playgroud)

现在,虽然这是一种使访问线程安全的安全方法,但它也表明一次只能读取一个线程foo.

如果很多线程foo经常读取,并且有时只更新这个变量,那将是一个很大的浪费.相反,getter可以由多个线程同时调用而没有任何问题.

有关于如何处理这个问题的既定模式吗?或者你会如何以最优雅的方式解决这个问题?

java concurrency multithreading synchronized

3
推荐指数
1
解决办法
1608
查看次数

java stream.peek()如何影响字节码?

据我所知,如果我有一个带有两个过滤器的流,它们将与字节码中的&&结合使用.

例如

IntStream.range(1,10)
  .filter(i -> i % 2 == 0)
  .filter(i -> i % 3 == 0)
  .sum();
Run Code Online (Sandbox Code Playgroud)

会像i%2 == 0 && i%3 == 0.

偷看会影响这个吗?

如果你在第一个文件管理器后偷看你得到2468,如果你偷看第二个,你只得到6(当然).

但如果你偷看这两个地方

IntStream.range(1,10)
            .filter(integer -> integer % 2 == 0)
            .peek(i-> System.out.print(i))
            .filter(integer -> integer % 3 == 0)
            .peek(i-> System.out.print(i))
            .sum();
Run Code Online (Sandbox Code Playgroud)

你得到24668.

我的假设是,这必然意味着操作在某种程度上是由于窥视调用而分开的.就像是

if(i%2==0)
  peek
  if(i%3==0)
Run Code Online (Sandbox Code Playgroud)

这是真的,如果是这样会影响性能(我认为不会).

java performance bytecode java-8 java-stream

2
推荐指数
1
解决办法
161
查看次数