zoukankan      html  css  js  c++  java
  • 笔记01

    Synchronized(this) 
    锁住该代码块的对象,等访问该对象的线程执行完,其他线程才可以执行。
    Synchronized(xxx.class) 
     锁住该类,所有访问该类的线程,一次只有一个可以执行。
    其他
    A. 无论synchronized关键字加在方法上还是对象上,如果它作用的对象是非静态的,则它取得的锁是对象;如果synchronized作用的对象是一个静态方法或一个类,则它取得的锁是对类,该类所有的对象同一把锁。 
    B. 每个对象只有一个锁(lock)与之相关联,谁拿到这个锁谁就可以运行它所控制的那段代码。 
    C. 实现同步是要很大的系统开销作为代价的,甚至可能造成死锁,所以尽量避免无谓的同步控制
    
    
    package kafka.producer
    
    //kafka默认的分区 进行msg的keyhash分区
    import kafka.utils._
    import org.apache.kafka.common.utils.Utils
    
    @deprecated("This class has been deprecated and will be removed in a future release. " +
                "It has been replaced by org.apache.kafka.clients.producer.internals.DefaultPartitioner.", "0.10.0.0")
    class DefaultPartitioner(props: VerifiableProperties = null) extends Partitioner {
      private val random = new java.util.Random
      
      def partition(key: Any, numPartitions: Int): Int = {
        Utils.abs(key.hashCode) % numPartitions
      }
    }
    
    
    
    
    
    
    
    
    
    
    
    kafka的自定义分区
    import kafka.producer.Partitioner;
    import kafka.utils.VerifiableProperties;
    
    public class KafkaPartitioner implements Partitioner{
    	
    	public KafkaPartitioner(VerifiableProperties properties) {
    	}
    
    	@Override
    	public int partition(Object obj, int numPartitions) {
    		int partition = 0;  
            if (obj instanceof String) {
                String key=(String)obj;  
                int offset = key.lastIndexOf('.');  
                if (offset > 0) {  
                    partition = Integer.parseInt(key.substring(offset + 1)) % numPartitions;  
                }  
            }else{  
                partition = obj.toString().length() % numPartitions;  
            }  
            return partition;
    	}
    }
    
  • 相关阅读:
    Android 动画
    Eclipse设置软tab(用4个空格字符代替)及默认utf-8文件编码(unix)
    android ANR
    Android 服务端开发之开发环境配置
    安装Android sdk 4.4(19)出现问题的解决方案
    adb uninstall/pull/push 命令的使用总结
    Android学习笔记1 android adb启动失败问题 adb server is out of date. killing...
    Android.mk文件语法规范 原文
    Android MediaProvider数据库模式
    Android MVC模式
  • 原文地址:https://www.cnblogs.com/hejunhong/p/10526960.html
Copyright © 2011-2022 走看看